我有相当多的模板,都是在jinja2
在我的烧瓶应用程序。我遇到的问题是,Werkzeug Debugger
无法指出错误的确切位置,它只会弹出一个模板语法错误jinja2.exceptions.TemplateSyntaxError: tag name expected
。有什么方法可以重新配置它来指向bug?...otherwise的确切位置吗?这是一个需要调试的难题。
我看过我的剧本,但它们看起来都很好。我甚至试着把一些评论说出来,但没有成功。是的,在进行了几轮研究之后,我在配置文件TEMPLATE_DEBUG = False
中添加了以下内容。
我的堆栈追踪:
`jinja2.exceptions.TemplateSyntaxError
jinja2.exceptions.TemplateSyntaxError:标记名预期的回溯(最近一次调用)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/flask/app.py", line 2309, in __call__
return self.wsgi_app(environ, start_response)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/flask/app.py", line 2295, in wsgi_app
response = self.handle_exception(e)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/flask_restful/__init__.py", line 269, in error_router
return original_handler(e)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/flask/app.py", line 1741, in handle_exception
reraise(exc_type, exc_value, tb)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
raise value
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/flask/app.py", line 2292, in wsgi_app
response = self.full_dispatch_request()
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/flask/app.py", line 1815, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/flask_restful/__init__.py", line 269, in error_router
return original_handler(e)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/flask/app.py", line 1718, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
raise value
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/app/main/index/views.py", line 24, in index
search_form=search_form)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/flask/templating.py", line 135, in render_template
context, ctx.app)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/flask/templating.py", line 117, in _render
rv = template.render(context)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/jinja2/asyncsupport.py", line 76, in render
return original_render(self, *args, **kwargs)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/jinja2/environment.py", line 1008, in render
return self.environment.handle_exception(exc_info, True)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/jinja2/environment.py", line 780, in handle_exception
reraise(exc_type, exc_value, tb)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/jinja2/_compat.py", line 37, in reraise
raise value.with_traceback(tb)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/app/templates/base.html", line 48, in template
<li {% - if request.path == url_for('user.index') %} class="active"{%- endif -%} ><a
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/jinja2/environment.py", line 1005, in render
return concat(self.root_render_func(self.new_context(vars)))
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/app/main/index/templates/index.html", line 1, in top-level template code
{% extends "base.html" %}
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/jinja2/environment.py", line 780, in handle_exception
reraise(exc_type, exc_value, tb)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/jinja2/_compat.py", line 37, in reraise
raise value.with_traceback(tb)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/app/templates/base.html", line 48, in template
<li {% - if request.path == url_for('user.index') %} class="active"{%- endif -%} ><a
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/jinja2/environment.py", line 497, in _parse
return Parser(self, source, name, encode_filename(filename)).parse()
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/jinja2/parser.py", line 901, in parse
result = nodes.Template(self.subparse(), lineno=1)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/jinja2/parser.py", line 883, in subparse
rv = self.parse_statement()
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/jinja2/parser.py", line 130, in parse_statement
return getattr(self, 'parse_' + self.stream.current.value)()
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/jinja2/parser.py", line 268, in parse_block
node.body = self.parse_statements(('name:endblock',), drop_needle=True)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/jinja2/parser.py", line 165, in parse_statements
result = self.subparse(end_tokens)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/jinja2/parser.py", line 883, in subparse
rv = self.parse_statement()
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/jinja2/parser.py", line 130, in parse_statement
return getattr(self, 'parse_' + self.stream.current.value)()
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/jinja2/parser.py", line 223, in parse_if
drop_needle=True)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/jinja2/parser.py", line 165, in parse_statements
result = self.subparse(end_tokens)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/jinja2/parser.py", line 883, in subparse
rv = self.parse_statement()
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/jinja2/parser.py", line 125, in parse_statement
self.fail('tag name expected', token.lineno)
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/venv/lib/python3.7/site-packages/jinja2/parser.py", line 59, in fail
raise exc(msg, lineno, self.name, self.filename)
jinja2.exceptions.TemplateSyntaxError: tag name expected`
如果我能得到帮助,在指出jinja2模板错误的确切来源方面,我将在黑客上获得grateful...bring,提前谢谢。
发布于 2019-05-20 10:08:11
您可以看到在堆栈跟踪中引起问题的行:
File "/doka/Desktop/Python_projects/flask_collection/flaskbook/app/templates/base.html", line 48, in template
<li {% - if request.path == url_for('user.index') %} class="active"{%- endif -%} ><a
正如金加医生所说:
不能在标签和减号之间添加空格。 有效:
{%- if foo -%}...{% endif %}
无效:{% - if foo - %}...{% endif %}
更多:http://jinja.pocoo.org/docs/2.10/templates/
https://stackoverflow.com/questions/56217696
复制相似问题