【问题标题】:Is there a way to add dynamic url_prefix to all routes in Flask app?有没有办法将动态 url_prefix 添加到 Flask 应用程序中的所有路由?
【发布时间】:2015-09-02 01:03:30
【问题描述】:

我有一个大型烧瓶应用程序,其结构如下所示:

app/
  - mod1/
  - mod2/
  - init.py

每个modX 都使用一个蓝图,该蓝图在init.py 中注册到Flask 应用程序。每个蓝图指定一个动态的url_prefix,如图所示:

modX = Blueprint('modX', __name__, url_prefix='/<regex("[a-z]{5,}"):code>/modX')

还有一个 url_value_preprocessor 函数依赖于 code 在调用此蓝图的端点时可用。

现在,我的问题是,鉴于这里有一些这样的模块,有没有办法在 Flask 应用程序中做同样的事情(添加动态 url_prefix),以便所有注册到它的蓝图都将继承该 url_prefix而且我不必为每个蓝图重复代码?

【问题讨论】:

    标签: python python-3.x flask


    【解决方案1】:

    您可以provide the url_prefix option during the call to register_blueprint 而不是将选项挂在每个蓝图定义上。

    【讨论】:

    • 谢谢@phro。我仍然需要为每个蓝图调用 register_blueprint 并将 url_prefix 单独传递给每个蓝图。虽然我可以将前缀存储在一个变量中并使用该变量或编写一个包装函数,在 url_prefix 中添加蓝图注册。
    • 包装器正是我的想法,带有默认 kwarg 的东西可以让你在大部分情况下都没有重复。
    猜你喜欢
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 2016-06-02
    • 2011-12-21
    • 1970-01-01
    • 2011-01-23
    • 2022-01-01
    相关资源
    最近更新 更多