Flask:请求variables中的当前页面
在一个模板中,我怎么得到我目前的网页? 我宁愿不传递像page的variables,特别是当我知道一些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> 
	
 只要你已经导入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> 
使用request.path似乎不是一个正确的方法,因为如果更改URL规则或在子文件夹下部署您的站点,您将不得不更新path。
改为使用request.url_rule.endpoint,它包含与实际path无关的实际端点名称:
 (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,你可以使用如下的url_for函数: 
 {% for ni in ['index', 'foo', 'bar', 'baz'] %} <li {%- if request.path == url_for(ni) %} class="active"{% endif %}><a href="{{ url_for(ni) }}">{{ ni | capitalize }}</a></li> {% endfor %} 
在这种情况下,索引,富,酒吧和巴兹将是函数名称,在你的Python代码中使用像这样:
 @app.route('/') def index():