在将数据从flask传递到javascript时,JSON中出现意外的令牌{

时间:2018-03-12 17:44:32

标签: javascript python flask

我正在尝试将简单数据从flask传递到javascript文件 我正在听这个答案 Passing a JSON object from Flask to JavaScript

但是我得到了Uncaught SyntaxError:意外的令牌{在位置1的JSON中     在JSON.parse()

var user = JSON.parse('{{ data | tojson}}');      
 var grade=user.grade;
 console.log(grade);

我的python文件有代码

@app.route("/quiz/0")
def quizFirst():
    data={"grade":"0"}
    return render_template('quiz.html',data=data)

令牌{js文件中的javascript无法识别,不知道我错过了什么。

1 个答案:

答案 0 :(得分:3)

它对我有用。此JavaScript需要位于quiz.html内。原因是Flask将处理quiz.html并将{{ data | tojson }}替换为render_template中提供的数据。但是,它不会处理您的静态JS文件。

quiz.html:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>sotest</title>
</head>
<body>

  Hello World!

<script>
  var user = JSON.parse('{{ data | tojson}}');      
  var grade=user.grade;
  console.log(grade);
</script>

</body>
</html>

app.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from flask import Flask, render_template
app = Flask(__name__)

@app.route("/quiz/0")
def quizFirst():
    data={"grade":"0"}
    return render_template('quiz.html',data=data)

if __name__ == "__main__":
    app.run(debug=True)