Retour Code d'état HTTP 201 en flacon
-
27-10-2019 - |
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 ?
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 /