Question

Nous utilisons pour Flask un de nos API et je me demandais si quelqu'un savait comment retourner une réponse HTTP 201?

Pour des erreurs telles que 404, nous pouvons appeler:

from flask import abort
abort(404)

Mais je reçois 201

LookupError: pas d'exception pour 201

Dois-je créer ma propre exception comme cette dans la documentation ?

Était-ce utile?

La solution

Vous pouvez lire à ce sujet ici.

return render_template('page.html'), 201

Autres conseils

Vous pouvez utiliser la réponse pour retourner un code d'état HTTP.

> from flask import Response
> return Response("{'a':'b'}", status=201, mimetype='application/json')

manque Suggérées code d'état dans la déclaration de retour et si vous stockez dans une variable comme

notfound = 404
invalid = 403
ok = 200

et en utilisant

return xyz, notfound

que le temps Assurez-vous que le type est int pas str. comme je l'ai fait face à ce petit problème aussi voici la liste des codes d'état suivi au niveau mondial http://www.w3.org/Protocols/HTTP/HTRESP.html

it helps.

Vous pouvez faire

result = {'a': 'b'}
return jsonify(result), 201

si vous voulez retourner des données JSON dans la réponse ainsi que le code d'erreur Vous pouvez lire les réponses et ici pour plus de détails API make_response

Dans votre code flacon, vous devez idéalement spécifier le type MIME aussi souvent que possible, ainsi:

return html_page_str, 200, {'ContentType':'text/html'}

return json.dumps({'success':True}), 200, {'ContentType':'application/json'}

... etc

Dans mon cas, je devais combiner ci-dessus afin de le faire fonctionner

return Response(json.dumps({'Error': 'Error in payload'}), 
status=422, 
mimetype="application/json")

vous pouvez également utiliser flask_api pour la réponse envoi

from flask_api import status

@app.route('/your-api/')
def empty_view(self):
    content = {'your content here'}
    return content, status.HTTP_201_CREATED

vous pouvez trouver ici référence http://www.flaskapi.org/api -guide / codes d'état /

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top