线路有问题 const message = JSON.parse(message);。该消息是来自 python flask 后端的 JSON。如果我通常<span>{{message}}</span>用 HTML 标签编写,这将打印出 JSON 文件。但由于某种原因我无法解析它?<!doctype html><html> <head> <title>{{ title }} - Status Checker</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> <link rel= "stylesheet" type= "text/css" href= "{{ url_for('static',filename='styles/styles.css') }}"> <script> const message = JSON.parse(message);</script> </head> <body> <ul> <li> <span>TestDrive</span> <span class="badge badge-pill badge-success">Operational</span> </li> </ul> <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> </body></html>蟒蛇方法:@app.route('/index')def index(): user = {'username': 'Me'} ------------------------------------------------DATA-------------------- message=json.dumps(dicts) return render_template('index.html', title='Home', user=user, message = message) JSON:{"thing":"value", "more":"stuff"}
3 回答
忽然笑
TA贡献1806条经验 获得超5个赞
你必须在完成后加载 json 对象json.dumps。
message = json.dumps(dicts)
message_dump = json.loads(message)
return render_template('index.html', title='Home', user=user, message=message_dump)
现在,您可以直接使用 json 对象,而无需在 script 标记中进行解析,并通过遍历它来解析键值。
现在,您可以使用 like{{ message["things"] }}打印"value"HTML 等。
开心每一天1111
TA贡献1836条经验 获得超13个赞
看来,你需要这样解析它:
let message = {{ message }} JSON.parse(message)
所以问题是模板变量由服务器解析,但你试图将它们传递给 JS(浏览器)
添加回答
举报
0/150
提交
取消