web-dev-qa-db-fra.com

Renvoie le code d'état HTTP 201 dans la fiole

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

Pour des erreurs telles que 404, nous pouvons appeler:

from flask import abort
abort(404)

Mais pour 201 je reçois

LookupError: pas d'exception pour 201

Dois-je créer ma propre exception telle que this dans la documentation?

91
ingh.am

Vous pouvez lire à ce sujet ici.

return render_template('page.html'), 201
105
Iacks

Vous pouvez utiliser Response pour renvoyer n'importe quel code de statut http.

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

Comme manque le code de statut d’envoi suggéré dans la déclaration de retour Et si vous le stockez dans une variable comme 

notfound = 404
invalid = 403
ok = 200

et en utilisant

return xyz, notfound

que le temps assurez-vous que son type est int pas str. alors que je faisais face à ce petit problème voici également la liste du code de statut suivi globalement http://www.w3.org/Protocols/HTTP/HTRESP.html

J'espère que ça aide.

19
Harsh Daftary

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

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

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

...etc

2
Ben Wheeler

Tu peux faire 

from flask import make_response

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

si vous souhaitez renvoyer une donnée JSON dans la réponse avec le code d'erreurVous pouvez en savoir plus sur les réponses ici et ici pour les détails de l'API make_response

1
Kishan K