【问题标题】:Jinja Flask issue: Uncaught SyntaxError: Unexpected token { in JSON at position 1 at JSON.parseJinja Flask 问题:Uncaught SyntaxError: Unexpected token { in JSON at position 1 at JSON.parse
【发布时间】:2019-03-22 02:17:33
【问题描述】:

您好,我在将简单变量从 Flask 应用程序传递到 javascript 时遇到问题。我的 python 如下所示:

@app.route('/')
def loadInitialData():

    data={"grade":"0"}

    return render_template('index.html', data= json.dumps(data))

我的 javascript 看起来像这样:

var data = JSON.parse('{{ data }}');
console.log(data);

我不断收到此错误:

VM24:1 Uncaught SyntaxError: Unexpected token { in JSON at position 1 在 JSON.parse() 处

【问题讨论】:

  • 该 JavaScript 代码是在 index.html 模板中,还是在独立的 .js 文件中?
  • 我在 html 中引用的独立 .js
  • 好的,所以 Jinja 解析仅适用于 html 模板,而不适用于 .js 文件,因此您的 {{ data }} 不会评估为来自 Flask 的 JSON 数据。

标签: flask jinja2


【解决方案1】:

Jinja 变量解析仅适用于 html 模板(传入render_template),因此如果您的 Javascript 代码位于静态 JS 文件中,则无法访问 Flask/Jinja 变量。

【讨论】:

  • 啊,我明白了……所以如果我将脚本直接写入 html,它应该可以工作……当人们想将 js 移动到自己的文件中时,他们如何解决这个问题?
  • 嗨@kPow989,你有想过这个吗?我有同样的问题,想将我的 JS 代码移动到它自己的文件中
  • @squeegene。 . 不,不幸的是,我最终只是将我的代码移到了 HTML 文件中......我认为这在 Django 中不是问题......但是如果你在 Flask 中找不到解决方法,不妨试试看
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-24
  • 2021-09-30
  • 2019-09-20
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多