ブートストラップを使用するフラスコ内のテンプレートを正しく継承するにはどうすればよいですか?

ヨルダン

使用{% extends "base.html" %}するとテンプレートが正しく継承されるようですが、ナビゲーションバーはブートストラップを使用しません。

私が使用{% extends "bootstrap/base.html" %}した場合、それも機能しません。エラーは発生しませんが、タイトルをIndexに設定するだけで、ページが空白になります。

別の注意:ナビゲーションバーを表示する唯一の方法は、ナビゲーションバーを直接中に入れてindex.html使用することです{% extends "bootstrap/base.html" %}

私はMiguelGrinbergによるFlaskWeb Developmentを使用していますが、コードは明らかな内容を除いて同じです。

私は何が間違っているのですか?そして、最初に頭に飛び込むだけでなく、ゆっくりとフラスコに飛び込むための良いリソースを持っている人はいますか?私は少し厄介な詳細を理解するのに苦労しています。

base.html:

{% extends "bootstrap/base.html" %}
<html>

<head>
    {% block head %}
    <title>{% block title %}{% endblock %} - MyFlask</title>
    {% endblock %}
</head>

<body>

    {% block navbar %}
        <div class="navbar navbar-inverse" role="navigation">
            <div class="container">
                <div class="navbar-header">
                    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                        <span class="sr-only">Navbar</span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </button>
                    <a class="navbar-brand" href="/">MyFlask</a>
                </div>
                <div class="navbar-collapse collapse">
                    <ul class="nav navbar-nav">
                        <li><a href="/">Home</a></li>
                        <li><a href="/bootstrap"></a></li>
                    </ul>
                </div>
            </div>
        </div>
    {% endblock %}

    {% block content %}
        <div class="container">
            {% block page_content %}{% endblock %}
        </div>
    {% endblock %}

</body>
</html>

index.html:

{% extends "base.html" %}
{% block title %}Index{% endblock %}

{% block page_content %}
    <h3>Session info:</h3>
    <p><b>Browser:</b> {{ browser }}</p>
{% endblock %}
ファルザド

テンプレートの継承を使用する場合には、ベーステンプレートのレイアウトの構造を定義し、ブロック内のそれぞれの子テンプレート(のような特定の詳細を提供することが一般的であるcontentpage_contentなど)。

baseテンプレート自体が(「bootstrap / base.html」の)子テンプレートである上記の例では、同じパターンを使用できます。

代わりに(のようなHTMLタグを定義する<html><head>など)には対応し使用することをお勧めしますブロックをFlaskブートストラップ、子テンプレートがオーバーライドできる、これらのHTMLタグのそれぞれに対応するそのようなブロックを定義します。

したがって、base.html次のようにテンプレートを変更すると、テンプレートは次のようにindex定義されたレイアウトを使用できますbootstrap/base

{% extends "bootstrap/base.html" %}

{% block head %}
    {{ super() }}
    <title>{% block title %}{% endblock %} - MyFlask</title>
{% endblock %}

{% block navbar %}
    <div class="navbar navbar-inverse" role="navigation">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                    <span class="sr-only">Navbar</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="/">MyFlask</a>
            </div>
            <div class="navbar-collapse collapse">
                <ul class="nav navbar-nav">
                    <li><a href="/">Home</a></li>
                    <li><a href="/bootstrap"></a></li>
                </ul>
            </div>
        </div>
    </div>
{% endblock %}

{% block content %}
    <div class="container">
        {% block page_content %}{% endblock %}
    </div>
{% endblock %}

headブロックでは、super()Flaskブートストラップがheadブロックで定義したものをすべて取得するために使用していることに注意してください(CSS、JSファイルなどをロードする可能性があります)。これにより、base.htmlテンプレートでheadセクションをカスタマイズできます。ただし、このコントロールを必要とせず、ページのタイトルのみを指定する場合はheadtitleブロックの上書きを回避してブロックを定義するだけで済みますこの変更base.htmlファイルを実行するには、次のように開始します。

{% extends "bootstrap/base.html" %}

{% block title %}{% block page_name %}{% endblock %} - MyFlask{% endblock %}

{% block head %} ...セクションの削除次に、index.htmlテンプレートを変更してpage_nametitle次の代わりにブロックを定義します

{% extends "base.html" %}

{% block page_name %}Index{% endblock %}

{% block page_content %}
    <h3>Session info:</h3>
    <p><b>Browser:</b> {{ browser }}</p>
{% endblock %}

これで、インデックスページのタイトルは「Index-MyFlask」になるため、すべてのページのタイトルに共通のサフィックスを付けることができます。

あなたは、自分の特定のタイトルを持っている各ページが必要な場合は、あなたが定義することtitleオーバーライドし、そこにブロックをtitleブロックしますbase.html

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

継承とテンプレートを使用してフレンドクラスを使用するにはどうすればよいですか

分類Dev

ブートストラップ4-フッター内の何かを正しく正当化するにはどうすればよいですか?

分類Dev

ブートストラップを使用して固定コンテナ内に全幅の背景を作成するにはどうすればよいですか?

分類Dev

ブートストラップ4の使用中にボタンを正しく配置するにはどうすればよいですか?

分類Dev

ブーストラップを使用してアイコンの横にテキストを配置するにはどうすればよいですか?

分類Dev

部分的なクラステンプレートの特殊化で継承を実装するにはどうすればよいですか?

分類Dev

ブースト::トランスフォームを使用して、テンプレートコンストラクトでラムダを使用してシーケンスを変更するにはどうすればよいですか?

分類Dev

ブートストラップテーブルをフォーマットして、すべてのコンテンツを左揃えにし、必要なスペースのみを使用するにはどうすればよいですか?

分類Dev

新しい式内でコンストラクターのテンプレート引数を指定するにはどうすればよいですか?

分類Dev

Djangoテンプレートで継承されたコンテナをオーバーライドするにはどうすればよいですか?

分類Dev

Djangoテンプレートで継承されたコンテナをオーバーライドするにはどうすればよいですか?

分類Dev

Cheetahテンプレートで継承を使用するにはどうすればよいですか?

分類Dev

ブートストラップグリフィコンをASP.Netのasp:Button内に配置するにはどうすればよいですか?

分類Dev

テンプレートを使用するクラスから継承するときにメソッドをオーバーライドするにはどうすればよいですか?

分類Dev

CakePHP 3でグリフィコンを使用してブートストラップボタンを出力するにはどうすればよいですか?

分類Dev

ブートストラップ4カードヘッダーのボタンを常に正しく(レスポンシブでデスクトップ)移動するにはどうすればよいですか?

分類Dev

ブートストラップ4カードヘッダーのボタンを常に正しく(レスポンシブでデスクトップ)移動するにはどうすればよいですか?

分類Dev

ブートストラップコンテナ内の要素を修正するにはどうすればよいですか?

分類Dev

ブートストラップを使用してボーダレステーブルを作成するにはどうすればよいですか

分類Dev

フラスコで使用するテンプレートディレクトリを動的に選択するにはどうすればよいですか?

分類Dev

ブートストラップのrow-coldiv内にレスポンシブイメージを作成するにはどうすればよいですか?

分類Dev

Twitterのブートストラップを使用して2(フレーム?)を作成するにはどうすればよいですか?

分類Dev

テンプレートクラスを継承し、現在継承しようとしているクラスのテンプレート化されたサブクラスにタイプを設定できますか?

分類Dev

ラテックステンプレートを使用してpandocでタイトルの色を指定するにはどうすればよいですか?

分類Dev

ブートストラップクラスを使用して、divを他のdiv内に中央揃えするにはどうすればよいですか?

分類Dev

ブートストラップを使用してレスポンシブ画像に検索バーを配置するにはどうすればよいですか?

分類Dev

ブラウザのconfirm()をAngularテンプレートステートメントと一緒に使用するにはどうすればよいですか?

分類Dev

ブートストラップテーブルにブートストラップボタンを追加するにはどうすればよいですか

分類Dev

2つのコンストラクターをリンクし、それらをプロトタイプとしてオブジェクトに継承するにはどうすればよいですか?

Related 関連記事

  1. 1

    継承とテンプレートを使用してフレンドクラスを使用するにはどうすればよいですか

  2. 2

    ブートストラップ4-フッター内の何かを正しく正当化するにはどうすればよいですか?

  3. 3

    ブートストラップを使用して固定コンテナ内に全幅の背景を作成するにはどうすればよいですか?

  4. 4

    ブートストラップ4の使用中にボタンを正しく配置するにはどうすればよいですか?

  5. 5

    ブーストラップを使用してアイコンの横にテキストを配置するにはどうすればよいですか?

  6. 6

    部分的なクラステンプレートの特殊化で継承を実装するにはどうすればよいですか?

  7. 7

    ブースト::トランスフォームを使用して、テンプレートコンストラクトでラムダを使用してシーケンスを変更するにはどうすればよいですか?

  8. 8

    ブートストラップテーブルをフォーマットして、すべてのコンテンツを左揃えにし、必要なスペースのみを使用するにはどうすればよいですか?

  9. 9

    新しい式内でコンストラクターのテンプレート引数を指定するにはどうすればよいですか?

  10. 10

    Djangoテンプレートで継承されたコンテナをオーバーライドするにはどうすればよいですか?

  11. 11

    Djangoテンプレートで継承されたコンテナをオーバーライドするにはどうすればよいですか?

  12. 12

    Cheetahテンプレートで継承を使用するにはどうすればよいですか?

  13. 13

    ブートストラップグリフィコンをASP.Netのasp:Button内に配置するにはどうすればよいですか?

  14. 14

    テンプレートを使用するクラスから継承するときにメソッドをオーバーライドするにはどうすればよいですか?

  15. 15

    CakePHP 3でグリフィコンを使用してブートストラップボタンを出力するにはどうすればよいですか?

  16. 16

    ブートストラップ4カードヘッダーのボタンを常に正しく(レスポンシブでデスクトップ)移動するにはどうすればよいですか?

  17. 17

    ブートストラップ4カードヘッダーのボタンを常に正しく(レスポンシブでデスクトップ)移動するにはどうすればよいですか?

  18. 18

    ブートストラップコンテナ内の要素を修正するにはどうすればよいですか?

  19. 19

    ブートストラップを使用してボーダレステーブルを作成するにはどうすればよいですか

  20. 20

    フラスコで使用するテンプレートディレクトリを動的に選択するにはどうすればよいですか?

  21. 21

    ブートストラップのrow-coldiv内にレスポンシブイメージを作成するにはどうすればよいですか?

  22. 22

    Twitterのブートストラップを使用して2(フレーム?)を作成するにはどうすればよいですか?

  23. 23

    テンプレートクラスを継承し、現在継承しようとしているクラスのテンプレート化されたサブクラスにタイプを設定できますか?

  24. 24

    ラテックステンプレートを使用してpandocでタイトルの色を指定するにはどうすればよいですか?

  25. 25

    ブートストラップクラスを使用して、divを他のdiv内に中央揃えするにはどうすればよいですか?

  26. 26

    ブートストラップを使用してレスポンシブ画像に検索バーを配置するにはどうすればよいですか?

  27. 27

    ブラウザのconfirm()をAngularテンプレートステートメントと一緒に使用するにはどうすればよいですか?

  28. 28

    ブートストラップテーブルにブートストラップボタンを追加するにはどうすればよいですか

  29. 29

    2つのコンストラクターをリンクし、それらをプロトタイプとしてオブジェクトに継承するにはどうすればよいですか?

ホットタグ

アーカイブ