Flink Jinja 2 Рендеринг Проблема - PullRequest
0 голосов
/ 03 апреля 2019

Я уверен, что делаю что-то не так.

{% block content %}
    <h1>Sign In</h1>
    <form action="" method="post" novalidate>
        {{ form.hidden_tag() }}
        <p>
            {{ form.username.label }}<br>
            {{ form.username(size=32) }}
        </p>
        <p>
            {{ form.password.label }}<br>
            {{ form.password(size=32) }}
        </p>
        <p>{{ form.remember_me() }} {{ form.remember_me.label }}</p>
        <p>{{ form.submit() }}</p>
    </form>
{% endblock %}
{% extends "base.html" %}

Выше кода дает этот вывод:

enter image description here

Что правильно. Но когда я изменяю тот же код, как показано ниже:

{% extends "base.html" %}
{% block content %}
    <h1>Sign In</h1>
    <form action="" method="post" novalidate>
        {{ form.hidden_tag() }}
        <p>
            {{ form.username.label }}<br>
            {{ form.username(size=32) }}
        </p>
        <p>
            {{ form.password.label }}<br>
            {{ form.password(size=32) }}
        </p>
        <p>{{ form.remember_me() }} {{ form.remember_me.label }}</p>
        <p>{{ form.submit() }}</p>
    </form>
{% endblock %}

Вывод становится таким:

enter image description here

Мой base.html выглядит так:

<div>
    <a href="/index">Home</a>
    <a href="/login">Login</a>
</div>

Я уверен, я делаю какую-то глупую ошибку, но, похоже, не могу ее найти.

если я скопирую код из base.html поверх моего кода, он будет отображаться правильно.

Надеюсь, кто-нибудь может помочь.

1 Ответ

1 голос
/ 03 апреля 2019

Вам необходимо иметь блок контента для переопределения в base.html

<div>
    <a href="/index">Home</a>
    <a href="/login">Login</a>
    {% block content %}{%endblock%}
</div>

Ваш base.html должен содержать блоки для различных блоков контента, которые будут у вас на сайте.
Когда вы создаете новую страницу и хотите переопределить этот контент или добавить контент в те блоки, которые вы используете, расширяется, как вы это сделали.

{% extends "base.html" %}
{% block content %}
    Your content goes here
{% endblock %}

В вашем base.html может быть несколько блоков, а затем вы можете переопределить их, когда захотите.
Документация Jinja

Вы можете поместить контент в блоки контента в своем базовом html, а затем добавить к этому контенту, не переопределяя его, используя функцию super().

{% block content %}
    {{ super() }}
    New content here
{% endblock %}  

Вышесказанное может пригодиться для файлов скриптов. Если у вас есть какие-то, которые должны быть на сайте, а некоторые только на определенных страницах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...