我们正在使用Flask为我们的API之一,我只是想知道是否有人知道如何返回HTTP响应201?

对于404这样的错误,我们可以调用:

from flask import abort
abort(404)

但是201美元我得到了

LookupError: 201没有例外

我需要在文档中创建自己的异常吗?


当前回答

您还可以使用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/

其他回答

您可以使用Response来返回任何http状态代码。

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

对于404错误,可以这样做

def post():
    #either pass or get error 
    post = Model.query.get_or_404()
    return jsonify(post.to_json())

201的成功

def new_post():
    post = Model.from_json(request.json)
    return jsonify(post.to_json()), 201, \
      {'Location': url_for('api.get_post', id=post.id, _external=True)}

在你的flask代码中,理想情况下,你应该尽可能多地指定MIME类型,以及:

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

return json.dumps({'success':True}), 200, {'ContentType':'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/

返回语句中缺少建议的发送状态代码 如果你把它存储在某个变量中

notfound = 404
invalid = 403
ok = 200

和使用

return xyz, notfound

当我遇到这个小问题时,请确保它的类型是int而不是str 此外,这里是状态代码的列表遵循全局 http://www.w3.org/Protocols/HTTP/HTRESP.html

希望能有所帮助。