Я потерял свой пароль Reddit, и нет возможности восстановить его.
. Точка, в которой есть проверенное письмо, не только означает, что кто-то может получить электронное письмо и щелкнуть ссылку в нем; робот тоже может это сделать. Электронная почта - это путь назад к пользователю: он служит для восстановления потерянных паролей (и людей do забывают пароли), уведомлять о важных событиях и т. Д.
OpenID также является отличный вариант регистрации / входа в систему, минимальный хлопот для пользователя, и вы также получаете подтвержденное электронное письмо.
Ваш код просто определяет макрос снова и снова, он ничего не отображает. Избегайте чтения request.endpoint
и используйте базовые шаблоны для этого.
base.html
<ul class="nav nav-pills">
<li class="{% block nav_here %}{% endblock %}">Here</li>
<li class="{% block nav_there %}{% endblock %}">There</li>
<li class="{% block nav_anywhere %}{% endblock %}">Anywhere</li>
</ul>
{% block content %}{% endblock %}
there.html
{% extends "base.html" %}
{% block nav_there %}active{% endblock %}
{% block content %}
<blockquote>No matter where you go, there you are.</blockquote>
{% endblock %}
Базовая навигация определяет пустые nav_
блоки в классе li
, а дополнительный шаблон устанавливает соответствующий параметр active
. Вы можете расширить это, если хотите иметь суб-навигацию внутри страниц.
По какой-то странной причине вышеупомянутое решение не сработало для меня. Также вам нужно добавить код в 2 части.
Мое простое решение. проверьте, равна ли конечная точка., затем установите активный.
<li class="{% if request.endpoint == "new_message" %}active{% endif %}"><a href="/new_message"><span class="glyphicon glyphicon-leaf"></span> Message</a></li>
Правильно используйте макрос Jinja2. Это действительно полезная функция. В этом случае у вас нет правильного понимания того, как это работает. Этот пост объяснит это с надеждой. Это макрос для навигационного меню. Не забудьте поставить этот макрос где-то над кодом навигационного меню. В противном случае Jinja не найдет его при необходимости.
{% macro nav_link(endpoint, name) %}
{% if request.endpoint.endswith(endpoint) %}
<li class="active"><a href="{{ url_for(endpoint) }}">{{name}}</a></li>
{% else %}
<li><a href="{{ url_for(endpoint) }}">{{name}}</a></li>
{% endif %}
{% endmacro %}
Вы должны определить этот блок кода отдельно в файле шаблона. Не помещайте его в петлю или в другое место. Когда вы вызываете макрос в любом месте вашего шаблона, этот блок кода будет выполняться и даст вам желаемый результат. Посмотрите, как использовать этот макрос. nav-link()
- как регулярная функция. Вызовите его в своем блоке кода навигатора. Помните, что вы должны сначала определить эти маршруты на сервере. Или вы можете добавить эти макросы в отдельные html-файлы (скажем, macros.html
) и импортировать в них любой макрос в любом месте.
<ul class="nav navbar-nav">
{{ nav_link('home', 'Home') }}
{{ nav_link('about', 'About') }}
{{ nav_link('contact', 'Contact Us') }}
</ul>
Если вы используете macros.html, как я упоминал выше , вы можете использовать следующий код для импорта своего макроса.
{% from "macros.html" import nav_link with context %}
Это хороший учебник для шаблонов jinja2.