【问题标题】:Flask jinja2.exceptions.TemplateSyntaxError烧瓶 jinja2.exceptions.TemplateSyntaxError
【发布时间】:2013-03-17 08:05:40
【问题描述】:

我正在尝试在 Flask 中呈现模板,但出现以下错误:

Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1701, in __call__
    return self.wsgi_app(environ, start_response)
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1685, in wsgi_app
    with self.request_context(environ):
  File "/Library/Python/2.7/site-packages/flask/ctx.py", line 274, in __enter__
    self.push()
  File "/Library/Python/2.7/site-packages/flask/ctx.py", line 221, in push
    top.pop()
  File "/Library/Python/2.7/site-packages/flask/ctx.py", line 257, in pop
    self.app.do_teardown_request(exc)
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1587, in do_teardown_request
    rv = func(exc)

不确定这意味着什么,但看起来这是一个框架问题。有谁知道我可以做些什么来解决/解决这个问题?

【问题讨论】:

    标签: python flask jinja2


    【解决方案1】:

    我认为线索在于它抛出的异常......可能是模板中的语法错误。我会尝试取出所有{{ }}{% %} 标签,然后将它们一一添加。

    【讨论】:

    • 我把模板的所有内容都删除了,然后再试一次还是不行。仍然遇到同样的错误
    • 嗯...这很奇怪。这是完整的追溯吗?如果是这样,由于缺少有关 Jinja 异常的实际行,这很奇怪。我的猜测是某处有一个 try/except 正在捕获实际异常。可能是时候在代码中进行一些探索了。
    • 哦,我确实查看了烧瓶源代码,看来您安装的版本稍旧。但是do_teardown_request 内部没有任何明显的东西可以隐藏异常。
    【解决方案2】:

    我遇到了这个错误,结果是由 % 和 } 之间的错位空格引起的

    % } 而不是 %}

    【讨论】:

      【解决方案3】:

      检查所有右花括号。

      可能% 缺少关闭%} 分隔符。

      【讨论】:

      • 这帮助我找到了我的“愚蠢”语法错误,谢谢!
      【解决方案4】:

      我有同样的问题。只需确保准确无误即可{% is used with %},例如:

      {% block something %}
      
      or
      
       ... "{{ url_for(...,x=...) }}"
      

      留出一些空间让清晰可见

      【讨论】:

        【解决方案5】:

        我也遇到了同样的问题,是链接标签引起的:

        link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='style.css')}}">

        它应该在哪里:

        href="{{ url_for('static', filename='style.css')}}"

        {{ url_for(...) }}

        【讨论】:

          【解决方案6】:

          只需更改您的文件名(如 home.htmlxhome.html)保存它现在也将其更改为渲染模板函数。

          render template("home.html") #initial line
          render template("xhome.html") #changed line
          

          【讨论】:

            【解决方案7】:

            从 { % endfor % } 到 {% endfor %} 更正了代码。

            【讨论】:

              猜你喜欢
              • 2020-08-10
              • 2020-06-05
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-08-10
              相关资源
              最近更新 更多