我不知道如何强制 MIME 类型 application/json
用于 Flask 中的 View 。这是我为演示目的而汇总的一个简单 View :
@app.route("/")
def testView():
ret = '{"data": "JSON string example"}'
return ret
JSON 字符串(保存在变量 ret
中)是从其他地方收集的(使用来自另一个使用 subprocess
的程序的标准输出),所以我不能使用 Flask 提供的 jsonify
。
我已经查看了 "Returning Json" Documentation 和 this Stackoverflow 问题,但到目前为止我还没有运气。我已经四处寻找了一段时间,并将继续搜索,但我想我会在这里问一下,以防万一有人遇到这个问题。
谢谢。
查看 answer below
解决办法:
@app.route("/")
def testView():
ret = '{"data": "JSON string example"}'
resp = Response(response=ret,
status=200,
mimetype="application/json")
return resp
我发现这个网站很有用:Implementing a RESTful Web API with Python & Flask
最佳答案
如果你使用:
from flask import jsonify
然后在你的代码中:
return jsonify(somedict)
然后 jsonify() 自动将 mime 类型设置为 'application/json'
编辑:
这以前被认为是一种风险,但现在不是了,Flask 也更新了它的建议:“ECMAScript 5 关闭了这个漏洞,所以只有非常旧浏览器仍然容易受到攻击。所有这些浏览器都有其他更严重的漏洞,因此此行为已更改,jsonify() 现在支持序列化数组。" http://flask.pocoo.org/docs/1.0/security/#json-security
https://stackoverflow.com/questions/11945523/
相关文章:
json - 我应该如何处理 JSON 中的 HATEOAS 链接和引用?
java - 将 InputStream 转换为 JSONObject
python - 如何在保留矩阵维度的同时序列化 numpy 数组?
json - JSONObject 的 Jackson 2 等价物是什么?
json - 在 Play Framework JsObject 中解析 Json 数组
java - 在 JAX-RS 2.0 客户端库中处理自定义错误响应
c# - 如何从 jQuery ajax 调用将复杂对象传递给 ASP.NET WebApi GET