Jör*_*han 2 javascript python json flask
我坐在一个基于 Flask 的网络应用程序上。理论上,我想从磁盘加载一个 JSON 文件并将其提供给网站上的 javascript。
def getData():
check_for_update()
with open(LOCAL_file,"rb") as myfile:
data = json.load(myfile)
udate = data["today"]
return (udate, data)
Run Code Online (Sandbox Code Playgroud)
然后我将它发送到页面
return render_template('./index2.html', udate = thisdata[0], data = json.dumps(thisdata[1]))
Run Code Online (Sandbox Code Playgroud)
现在在页面上我只是尝试
def getData():
check_for_update()
with open(LOCAL_file,"rb") as myfile:
data = json.load(myfile)
udate = data["today"]
return (udate, data)
Run Code Online (Sandbox Code Playgroud)
然后导致这样的事情

这不能被解析。当我复制和粘贴它时,它工作正常,python 也没有抱怨。
data是HTML 转义,因为 Jinja2 默认情况下会转义所有内容以安全嵌入 HTML 页面。
最好不要在视图中编码为 JSON,而是在模板中执行此操作,并使用 Flasktojson和safe过滤器。
所以在thisdata[1]未编码的视图中传递:
return render_template(
'./index2.html', udate=thisdata[0], data=thisdata[1])
Run Code Online (Sandbox Code Playgroud)
并在视图中:
return render_template(
'./index2.html', udate=thisdata[0], data=thisdata[1])
Run Code Online (Sandbox Code Playgroud)
tojson生成的 JSON 数据也是 HTML 安全的(尽管带有"引号,因此它不适合嵌入 HTML 标记属性中),并且safe过滤器可用于关闭 HTML 编码。这里不需要使用JSON.parse(),生成的 JSONtojson是严格的 JavaScript 子集。
请参阅API 文档中的JSON 支持部分:
该模块的
htmlsafe_dumps()功能json也可用作|tojsonJinja2 中调用的过滤器。请注意,内部script标签不能进行转义,因此|safe如果您打算在script标签内部使用它,请确保禁用转义[.]
和Flask 模板文档的标准过滤器部分:
tojson()
此函数将给定的对象转换为 JSON 表示。例如,如果您尝试动态生成 JavaScript,这将非常有用。
| 归档时间: |
|
| 查看次数: |
1880 次 |
| 最近记录: |