我是Flask的新手并尝试使用Jinja2创建布局模板。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link href="{{ url_for('static', filename='bundle/login.styles.css') }}" rel="stylesheet">
<title>{{meta['title']}}</title>
</head>
<body>
<div class="app" id="app">
{% block content %}
{% endblock %}
</div>
<script type="text/javascript" src="{{ url_for('static', filename='bundle/login.bundle.js') }}"></script>
</body>
</html>
问题是,当我使用jinja2.exceptions.UndefinedError
时,我收到错误template.render()
:
jinja2.exceptions.UndefinedError: 'url_for' is undefined
虽然我使用render_template()
时工作正常。没有生成错误。我不知道我做错了什么。
此外,使用Jinja2.Environment
和jinga.get_template()
生成模板与使用render_template()
答案 0 :(得分:1)
使用render_template()
时,还会将url_for()
函数添加到模板中可用的全局变量中。
http://flask.pocoo.org/docs/0.12/templating/#standard-context
如果你没有那样做,那么它将无法使用。
如果你想了解一下这个特定问题的起点可能就在这里:
https://github.com/pallets/flask/blob/master/flask/templating.py#L121
https://github.com/pallets/flask/blob/master/flask/app.py#L699