Колба: текущая страница в переменной запроса


в шаблоне, как мне получить то, что страница я в настоящее время на? Я бы предпочел не передавать переменную, как page , особенно, когда я знаю, что некоторые request.xxx может предоставить мне информацию.

<li {% if page=="home" %}class="active"{% endif %}>                   
    <a href="/">Home</a>                                                
</li>                                                                 
<li {% if page=="about" %}class="active"{% endif %}>                  
    <a href="/about">About</a>                                          
</li> 
5 52

5 ответов:

пока вы импортировали request,request.path должен содержать эту информацию.

первый запрос на импорт из колбы в вашем приложении. Тогда вы можете использовать его, не переходя к шаблону:

<li {%- if request.path == "/home" %} class="active"{% endif %}>
    <a href="/">Home</a>
</li>
<li {%- if request.path=="/about" %} class="active"{% endif %}>
    <a href="/about">About</a>
</li>

С помощью запроса.путь не кажется правильным подходом, так как вам придется обновить пути в случае изменения правил URL или развертывания вашего сайта в подпапке.

запрос использовать.url_rule.конечная точка вместо этого содержит фактическое имя конечной точки, независимое от фактического пути:

(Pdb) request.url_rule.endpoint
'myblueprint.client_pipeline'

в шаблоне:

<li {% if request.url_rule.endpoint == "myblueprint.client_pipeline" %}class="active"{% endif %}>Home</li>

удачи!

попробовать

<li {% if request.endpoint == "blueprintname.routename" %}class="active"{% endif %}>Home</li>

этот работал на меня.

чтобы избежать использования жестко закодированных URL-адресов, вы можете использовать