4

私は、buttons.html と呼ばれる別の jinja2 テンプレートを含む jinja2 テンプレートでフラスコを使用しています。

ボタン テンプレートの親は次のようになります。

{% include "{{ url_for('.buttons') }}" %}

ブループリント コードは次のようになります。

@whatever_blueprint.route('/whatever/buttons.html', methods=['GET'])
def buttons():
    return render_template('/whatever/buttons.html')

これにより、jinja が を解決するという事実を利用することができます。現在のブループリント コンテキストへのパスに接頭辞 url_for を付けて、これがレンダリングされるブループリント用に特別にレンダリングされたボタンを提供します。他の場合には .prefix メソッドを使用しますが、このコンテキストではネストされた url_for を試していません。残念ながら、おそらくネストされた {% {{ }} %} が原因で、これを機能させることができないようです。

これは可能ですか?

4

1 に答える 1

2

残念ながら (または幸いなことに、ほとんどのユースケースはかなり醜いものです)、URL を含めることはできず、テンプレートのみを含めることができます。

必要なのは、{{ buttons() }}関数(またはin ) を呼び出しに渡すか、グローバル テンプレート コンテキストを介して使用できるようにすることです。buttonsbuttons{{ buttons }}buttons=buttons()render_template()render_template()

于 2012-06-27T20:49:27.413 に答える