Flask模板报错TemplateSyntaxError:期望token ',', 却得到'static'
解决Flask模板中url_for引发的TemplateSyntaxError问题
嘿,这个错误我之前也踩过坑!问题出在url_for的语法细节上——Jinja2模板引擎对语法标点的要求特别严格,半点儿中文标点或者格式错误都容不得。
看你的错误提示“期望token ',', 却得到'static'”,说明模板解析器在解析url_for的参数时,没找到它预期的英文逗号,反而识别到了异常内容。大概率是下面两个原因之一:
- 你用了中文逗号分隔
static和filename参数; static端点的引号是中文的(比如‘static’而非'static')。
给你修正后的正确代码:
<img src="{{ url_for('static', filename='foods/paneerparatha.jpg') }}" alt="Paneer Paratha">
这里要注意两个关键细节:
- 所有标点必须是英文的:包括
static的单引号、分隔参数的逗号; - 逗号后面可以加个空格(虽然不是强制要求,但能让代码更清晰,也能避免解析器偶尔的误判)。
说白了,Jinja2是严格按照Python语法规则解析模板表达式的,中文标点在它眼里就是无效字符,自然会抛出语法错误。把标点换成英文的,这个问题就能直接解决啦!
内容的提问来源于stack exchange,提问作者Vikram Kumar
相关产品推荐
相关产品推荐

