Kami menggunakan Flask untuk salah satu API kami dan saya hanya ingin tahu apakah ada yang tahu cara mengembalikan respons HTTP 201?
Untuk kesalahan seperti 404 kita dapat memanggil:
from flask import abort
abort(404)
Tapi untuk 201 saya dapatkan
LookupError: tidak terkecuali 201
Apakah saya perlu membuat pengecualian saya sendiri seperti ini di dokumen?
python
flask
httpresponse
ingh.am
sumber
sumber
return '', 201
Jawaban:
Anda dapat membacanya di sini.
return render_template('page.html'), 201
sumber
page.html
... Ini tidak akan bekerja dengan sendirinya.Anda dapat menggunakan Respon untuk mengembalikan kode status http.
> from flask import Response > return Response("{'a':'b'}", status=201, mimetype='application/json')
sumber
Karena kekurangan disarankan mengirim kode status dalam pernyataan kembali dan jika Anda menyimpannya dalam beberapa variabel seperti
notfound = 404 invalid = 403 ok = 200
dan menggunakan
return xyz, notfound
dari waktu pastikan tipenya int bukan str. seperti yang saya hadapi masalah kecil ini juga berikut adalah daftar kode status diikuti secara global http://www.w3.org/Protocols/HTTP/HTRESP.html
Semoga membantu.
sumber
Anda dapat melakukan
result = {'a': 'b'} return jsonify(result), 201
jika Anda ingin mengembalikan data JSON dalam respons bersama dengan kode kesalahan Anda dapat membaca tentang tanggapan di sini dan di sini untuk detail API make_response
sumber
Dalam kode flask Anda, idealnya Anda harus menentukan tipe MIME sesering mungkin, juga:
return html_page_str, 200, {'ContentType':'text/html'} return json.dumps({'success':True}), 200, {'ContentType':'application/json'}
... dll
sumber
Anda juga bisa menggunakan flask_api untuk mengirim respon
from flask_api import status @app.route('/your-api/') def empty_view(self): content = {'your content here'} return content, status.HTTP_201_CREATED
Anda dapat menemukan referensi di sini http://www.flaskapi.org/api-guide/status-codes/
sumber
Jadi, jika Anda menggunakan
flask_restful
Package untuk API mengembalikan 201 akan menjadi sepertidef bla(*args, **kwargs): ... return data, 201
di mana
data
harus ada nilai hashable / JsonSerialiable, seperti dict, string.sumber
Bergantung pada bagaimana API dibuat, biasanya dengan 201 (dibuat) Anda akan mengembalikan sumber daya yang telah dibuat. Misalnya jika itu membuat akun pengguna, Anda akan melakukan sesuatu seperti:
return {"data": {"username": "test","id":"fdsf345"}}, 201
Perhatikan nomor postfixed adalah kode status yang dikembalikan.
Alternatifnya, Anda mungkin ingin mengirim pesan ke klien seperti:
return {"msg": "Created Successfully"}, 201
sumber
Dalam kasus saya, saya harus menggabungkan hal-hal di atas untuk membuatnya bekerja
return Response(json.dumps({'Error': 'Error in payload'}), status=422, mimetype="application/json")
sumber