0
我正在構建一個瓶子應用程序,我需要將前端上的python後端創建的變量傳遞給javascript以跟蹤某些參數。但是,我遇到了一個奇怪的編碼問題,下面是一個示例,其中概述了python後端,Jinja2模板前端以及Chrome控制檯中顯示的錯誤。flask:錯誤將變量傳遞給javascript
app.py:
@app.route('/')
def send_name():
name = ["Michael"]
return render_template('index.html', name=name)
的index.html:
<html>
<script>
console.log('{{ name }}')
</script>
</html>
當我打開控制檯,我看到以下內容:
['Michael']
的符號#39是ASCII字符編碼爲一個apostrophre。如果我忽略從上面的console.log語句(它看起來像console.log({{ name }})
)撇號(單引號),我收到以下錯誤:
Uncaught SyntaxError: Unexpected token &
最奇怪的是,當我在任何地方打印變量<script>
標籤外面工作正常。
任何想法是什麼問題,我該如何解決它?
'name'是一個不是字典的列表。爲什麼我們允許使用json過濾器?這對我的工作是否我使用'tojson','安全',或兩者,謝謝!使用其中一種還是其他或兩種都更好?基於jinja2文檔它似乎'安全'內置到'tojson' –
是的...我認爲這可能是一個新的額外的東西,我知道這個技巧之後;)技術上,一個列表是有效的JSON,雖然通常不是我們如何思考它。很高興這有幫助。會根據只使用'tojson'來更新答案 – abigperson