Ответ 1
Вы можете прочитать об этом здесь.
return render_template('page.html'), 201
Мы используем Flask для одного из наших API, и мне просто интересно узнать, как вернуть HTTP-ответ 201?
Для таких ошибок, как 404, мы можем позвонить:
from flask import abort
abort(404)
Но за 201 я получаю
LookupError: исключение для 201
Мне нужно создать собственное исключение, например this в документах?
Вы можете прочитать об этом здесь.
return render_template('page.html'), 201
Вы можете использовать Response для возврата любого кода состояния http.
> from flask import Response
> return Response("{'a':'b'}", status=201, mimetype='application/json')
Как не хватает предложенного кода статуса отправки в операторе return и если вы храните его в некоторой переменной, например
notfound = 404
invalid = 403
ok = 200
и используя
return xyz, notfound
чем время, убедитесь, что его тип int не str. поскольку я столкнулся с этой небольшой проблемой также вот список кодов статуса, следующих за глобальным http://www.w3.org/Protocols/HTTP/HTRESP.html
Надеюсь, что это поможет.
Вы можете сделать
result = {'a': 'b'}
return jsonify(result), 201
если вы хотите вернуть в ответ данные JSON вместе с кодом ошибки Вы можете прочитать об ответах здесь и здесь, чтобы узнать подробности API make_response
В вашем коде колбы вы также должны в идеале указывать тип MIME как можно чаще:
return html_page_str, 200, {'ContentType':'text/html'}
return json.dumps({'success':True}), 200, {'ContentType':'application/json'}
...так далее
В моем случае мне пришлось объединить все вышеперечисленное, чтобы заставить его работать
return Response(json.dumps({'Error': 'Error in payload'}),
status=422,
mimetype="application/json")
вы также можете использовать flask_api для отправки ответа
from flask_api import status
@app.route('/your-api/')
def empty_view(self):
content = {'your content here'}
return content, status.HTTP_201_CREATED
вы можете найти ссылку здесь http://www.flaskapi.org/api-guide/status-codes/