web-dev-qa-db-ja.com

flaskにHTTPステータスコード201を返します

APIの1つにFlaskを使用していますが、HTTP応答201を返す方法を誰かが知っているのではないかと思っていました。

404などのエラーの場合、次のように呼び出すことができます。

from flask import abort
abort(404)

しかし、201のために私は得る

LookupError:201の例外なし

ドキュメントで this のような独自の例外を作成する必要がありますか?

111
ingh.am

それについて読むことができます こちら

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

Responseを使用して、httpステータスコードを返すことができます。

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

提案されていないように、returnステートメントでステータスコードを送信し、次のような変数に保存する場合

notfound = 404
invalid = 403
ok = 200

使用して

return xyz, notfound

時間よりもその型がstrではなくintであることを確認してください。私はこの小さな問題に直面したので、ここにもグローバルに続くステータスコードのリストがあります http://www.w3.org/Protocols/HTTP/HTRESP.html

それが役に立てば幸い。

21
Harsh Daftary

できるよ

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

エラーコードとともにレスポンスでJSONデータを返したい場合、make_response APIの詳細については、レスポンスについて here および here を読むことができます

10
Kishan K

flaskコードでは、理想的にはできるだけ頻繁にMIMEタイプも指定する必要があります。

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

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

...等

5
Ben Wheeler