踩坑之jinja2注釋問題(Flask中)


報錯信息

 jinja2.exceptions.TemplateSyntaxError 

jinja2.exceptions.TemplateSyntaxError: Expected an expression, got 'end of statement block'

原因

今天在用Flask寫web微信爬蟲時,到了往前端頁面 render_template()數據這一步,突然開始作死式的報錯,怎么調后端都沒用;

然而,問題的重點不在后端,細節見下文:

后端:

前端:

結果:

排錯

排查1

既然返回時有數據會報錯,試下不傳數據!

后端:

前端:

 

結果:

wtf~~~

顯然還是不行……

按理說,直接 render_template()一個單獨頁面沒毛病的啊……

繼續排查……

排查2

 這下直接返回字符串,不render了

后端:

 前端:

前端……是沒有前端的……

因為直接 return 的是字符串,所以,用不到前端。

結果:

排查3

綜上,可以基本斷定是模板文件的問題,也就是 index.html 文件的問題;

修改 index.html 內容試試:

后端:

不傳數據,只render 一個頁面;

前端:

干凈整潔,就一個 h1 標簽 和文本內容

結果:

 

總結

綜上對比,基本可以斷定是那段 被我注釋掉的代碼在作祟;

注釋內容是我直接在pycharm快捷鍵注釋的, 對於html來說,這注釋沒毛病;

但 jinja2 語法不認的!

jinja2 語法有自己的注釋方法;也就是說本次問題症結就是 jinja2 語法中的 “注釋” 方式;

jinja2 注釋方式

在jinja2中 {#  #} 表示注釋,其中內容不被模板引擎轉義。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM