报错信息
jinja2.exceptions.TemplateSyntaxErrorjinja2.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中 { # #} 表示注释,其中内容不被模板引擎转义。