我有一个烧瓶应用程序,其视图如下:
@menus.route('/', methods=["PUT", "POST"])
def new():
return jsonify(request.json)
但是,这只在请求的内容类型设置为application/json
时有效,否则dictrequest.json
为None。
我知道request.data
将请求体作为字符串,但我不希望每次客户端忘记设置请求的内容类型时都将其解析为dict。
有没有办法假设每个传入请求的内容类型都是application/json
?我只想始终能够访问有效的request.json
dict,即使客户端忘记将应用程序内容类型设置为json。
使用^{} 并将
force
设置为True
:从文档中:
对于较旧的Flask版本,<;0.10,如果您希望宽容并允许JSON,那么始终可以自己进行解码,显式地:
request
对象已经有一个方法get_json
,如果您使用force=True
执行它,那么无论内容类型如何,它都可以为您提供json,因此您的代码如下所示:实际上,烧瓶文档中说应该使用
request.get_json
,而不是request.json
:http://flask.pocoo.org/docs/api/?highlight=json#flask.Request.json相关问题 更多 >
编程相关推荐