我们正在使用Flask为我们的API之一,我只是想知道是否有人知道如何返回HTTP响应201?
对于404这样的错误,我们可以调用:
from flask import abort
abort(404)
但是201美元我得到了
LookupError: 201没有例外
我需要在文档中创建自己的异常吗?
我们正在使用Flask为我们的API之一,我只是想知道是否有人知道如何返回HTTP响应201?
对于404这样的错误,我们可以调用:
from flask import abort
abort(404)
但是201美元我得到了
LookupError: 201没有例外
我需要在文档中创建自己的异常吗?
当前回答
根据API是如何创建的,通常使用201 (created)返回创建的资源。例如,如果它是创建一个用户帐户,你会这样做:
return {"data": {"username": "test","id":"fdsf345"}}, 201
注意,附加的数字是返回的状态代码。
或者,你可能想要发送一个消息给客户端,比如:
return {"msg": "Created Successfully"}, 201
其他回答
你可以在这里阅读。
return render_template('page.html'), 201
如果你在API中使用flask_restful Package 返回201就会变成
def bla(*args, **kwargs):
...
return data, 201
其中data应该是任何可哈希/ JsonSerialiable值,如dict, string。
您还可以使用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
希望能有所帮助。
对于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)}