Python Jinja-是否有任何内置变量来获取当前HTML页面名称?

Python Jinja-是否有任何内置变量来获取当前HTML页面名称?,python,html,templates,jinja2,Python,Html,Templates,Jinja2,我对Jinja和Flask很陌生 我想在导航栏中设置不同的背景色以指示当前页面 是否有任何内置的Jinja变量或方法返回当前HTML页面?如果可能,我想要不需要与Python文件通信的代码 因此,如果我当前在index.html,它将返回“index”或“index.html” 以下是我的模板中的导航代码: <ul> {% for item in navigation %} <a href="{{url_for(item.route)}}">

我对Jinja和Flask很陌生

我想在导航栏中设置不同的背景色以指示当前页面

是否有任何内置的Jinja变量或方法返回当前HTML页面?如果可能,我想要不需要与Python文件通信的代码

因此,如果我当前在
index.html
,它将返回“index”或“index.html”

以下是我的模板中的导航代码:

<ul>
   {% for item in navigation %}
       <a href="{{url_for(item.route)}}">
       <li>
           {{item.text}}
       </li>
       </a>
   {% endfor %}
</ul>

谢谢

jinja2文档中有一个技巧可以解决您的问题:

如果您的列表足够简单,只需使用请求对象,如下所示:

<li {% if request.endpoint == item.endpoint %} class='active' {% endif %}>
    <a href="{{url_for(endpoint)}}">{{item.text}}</a>
</li> 
该列表将类似于:

 <ul class="nav nav-list">
     {{render_sitem('page.index',  _('Pages'), icon-cls='icon-sitemap', active=active_page)}}
     {{render_sitem('post.index', _('Posts'), icon-cls='icon-file', active=active_page)}}
     {{render_sitem('user.index', _('Users'), icon-cls='icon-group', active=active_page)}}
 </ul>

在子页面的顶部。

在pyramid 1.5中,没有类似于Flask中的request.endpoint的方法

我们使用自定义过滤器获取端点

request.path | get_端点

jinja2_自定义过滤器.py:

from pyramid_jinja2 import Environment

def get_endpoint(str):
    """

    :param str:
    :return:
    """
    return str.split('/')[-1]


env = Environment()
env.filters['get_endpoint'] = get_endpoint
在development.ini中:

jinja2.filters =
    model_url = pyramid_jinja2.filters:model_url_filter
    route_url = pyramid_jinja2.filters:route_url_filter
    static_url = pyramid_jinja2.filters:static_url_filter
    get_endpoint = path to ... jinja2_custom_filters.get_endpoint
也许它对某些人有用:)

可能是
{% set active_page = 'page.index' %} 
from pyramid_jinja2 import Environment

def get_endpoint(str):
    """

    :param str:
    :return:
    """
    return str.split('/')[-1]


env = Environment()
env.filters['get_endpoint'] = get_endpoint
jinja2.filters =
    model_url = pyramid_jinja2.filters:model_url_filter
    route_url = pyramid_jinja2.filters:route_url_filter
    static_url = pyramid_jinja2.filters:static_url_filter
    get_endpoint = path to ... jinja2_custom_filters.get_endpoint