【问题标题】:How to get the name of the Flask blueprint inside a template?如何在模板中获取 Flask 蓝图的名称?
【发布时间】:2019-12-04 18:56:13
【问题描述】:

我有一个用 Flask 构建的网站。它有几个部分,每个部分都有一个专用的蓝图。每个蓝图中的模板都扩展了一个基本模板,该模板具有每个页面的基本布局,包括一个带有每个部分的选项卡的导航栏。

我想让基础模板突出显示当前选项卡,因此它需要知道哪个蓝图的视图正在处理请求。

我想出的一种方法是为每个蓝图添加一个before_request 处理程序并将名称存储在g 中:

bp = Blueprint('blog', __name__, url_prefix='/blog')

@bp.before_request
def set_bp_name():
    g.section = 'blog'

但是 Flask 必须知道哪个蓝图正在处理请求(如果有的话),并且蓝图当然知道它自己的名称。有没有办法让模板获取当前蓝图的名称而不需要修改每个蓝图?

【问题讨论】:

    标签: python flask


    【解决方案1】:

    是的。很简单:request.blueprint.

    request 对象是 one of a few(连同 g),Flask 使所有模板都可以使用它。它包含blueprint 属性,这是处理当前请求的蓝图的名称。

    【讨论】:

      猜你喜欢
      • 2015-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-10
      相关资源
      最近更新 更多