私はFlaskを初めて使用し、Jinja2を使用してレイアウトテンプレートを作成しようとしています。私もrender_template()
を使用する場合には、正常に動作しますurl_forがjinja2テンプレート内で動作していない、 "定義されていない"エラーが発生しました
jinja2.exceptions.UndefinedError: 'url_for' is undefined
:
<!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>
問題は、私はtemplate.render()
を使用するときに私はエラーjinja2.exceptions.UndefinedError
を取得しています。エラーは発生しません。私は何が間違っているのか分かりません。
また、また、テンプレートで使用できるグローバル変数にurl_for()
機能を追加するの世話をするrender_template()
これを使用する場合は、単にrender_template()
だから私はJinja2のを定義したいと思う任意の明白な理由があります。フラスコ内のrender_template()を単に使うのではなく、環境とget_template? – dabishan
@ dabishanもしあなたがカスタマイズされたJinja環境を望むのであれば、この環境のワンショット使い方でなければ、おそらく 'create_jinja_environment()'をオーバーライドするでしょう。それについてのシナリオを本当に考えることはできませんが、そうではないというわけではありません。 – bgse