Вернуть HTTP Code 201 в колбе
-
27-10-2019 - |
Вопрос
Мы используем колбу для одного из наших API, и мне просто было интересно, знает ли кто -нибудь, как вернуть HTTP -ответ 201?
Для таких ошибок, как 404, мы можем позвонить:
from flask import abort
abort(404)
Но на 201 я получаю
Lookuperror: нет исключения для 201
Мне нужно создать свое собственное исключение, как это в документах?
Решение
Вы можете прочитать об этом здесь.
return render_template('page.html'), 201
Другие советы
Вы можете использовать ответ, чтобы вернуть любой код состояния HTTP.
> from flask import Response
> return Response("{'a':'b'}", status=201, mimetype='application/json')
Поскольку не хватает, отправить код состояния в обратном операторе и если вы храните его в какой -то переменной, например
notfound = 404
invalid = 403
ok = 200
и использование
return xyz, notfound
чем время убедитесь, что его тип не Str. Поскольку я столкнулся с этой небольшой проблемой, здесь также является списком кода состояния, который последовал за глобальноhttp://www.w3.org/protocols/http/htresp.html
Надеюсь, поможет.
В вашем коде Flask вы должны в идеале указать тип 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/