javascript - 为什么 JS 不从 Jinja 读取数据?
问题描述
我是 Flask 的新手,在尝试将数据从 Python Flask 传递到前端的 JS 时遇到了这个问题:
应用程序.py
@app.route("/",methods=['POST', 'GET'])
def search():
data = {"username": "test", "site": "stackoverflow.com"}
return render_template('search.html',data=data)
搜索.html
<html>
<head>
<script type="text/javascript" src="{{url_for('static', filename='js/search.js')}}"></script>
</head>
<body>
</body>
</html>
搜索.js
console.log(data)
我从控制台得到的结果是
ReferenceError: data is not defined
我已经检查了这个问题,在这种情况下仍然无法解决这个问题,我试过了。 这里的主要问题是什么?是语法问题吗?还是数据格式问题?
解决方案
data
正如@PGHE 所解释的,在您的html 中,您应该使用对json 的强制转换。
为了能够在代码中进行最少更改的情况下使用您的数据,您应该将您的 search.html 更改为:
<html>
<head>
<script>
const jsondata = JSON.parse('{{ data | tojson | safe}}');
console.log(jsondata) //should show your data
</script>
</head>
<body>
</body>
</html>
这是 html 中的内联 javascript,但您可以在文件中执行此操作
推荐阅读
- facebook - 无法获取具有预定直播的帖子的附件字段
- sql-server - Msg 4104, Level 16, State 1, Line 31 无法绑定多部分标识符“E.EmployeeNumber”
- typescript - 如何使用 Typescript 在 mongoose 中正确键入对象 ID 数组
- git - 文档一直显示旧版本(readthedocs)
- java - 如何使用 WebClient 使用 oauth2 安全 REST API?
- extjs - 当我的应用程序是 RTL 时,如何解决 Extjs 中的问题?
- elasticsearch - Elasticsearch:返回元中许多索引的匹配值
- java - 如何在java中的给定时间内知道爱尔兰的当前时区
- c++ - SFML - 具有自定义类的向量不加载纹理
- r - rmarkdown 块的工作目录不是 markdown 所在的位置