4

Flaskアプリケーションのすべてのページにデフォルトのページタイトルを設定しようとしています。

これをデフォルトのレイアウトテンプレートに挿入したいと思います。設定にサイト名があります。

<title>{{title}}</title}}

問題は、設定からレイアウトテンプレートにサイト名をインポートできないようです。

<title>{{settings.SETTING}}</title}}

および同様のバリエーションは機能しません。

これを行う簡単な方法はありますか。コントローラのすべてのアクションでタイトルを設定する必要はありません。論理的な方法は、設定からテンプレートに移動することです。私は今のところ道が見えません、どんな入力もありがたいです。

編集:

拡張機能を作成したくないのですが、アプリの別の部分で拡張機能を使用して変数をテンプレートにプルしているようですが、拡張機能全体を作成することは、当時の私の時間投資を少し超えています。

編集:

def page_title(title):
    return settings.SITE_NAME

app.jinja_env.filters['page_title'] = page_title

テンプレート内:

{{ title | page_title}} 

これは近いものです。タイトルを設定するか、デフォルトでオーバーライドしたいのですが、これが最初のステップです。

4

1 に答える 1

11

ブロックを使用します。

<title>{% block title %}{{ settings.SETTING }}{% endblock %}</title>

次に、タイトルを変更したい場合は、基本テンプレートから継承するテンプレートでそのブロックをオーバーライドするだけです。

{% block title %}your custom title{% endblock %} 
于 2012-09-09T13:19:53.663 に答える