首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蓝图的蓝图(烧瓶)

蓝图的蓝图(烧瓶)
EN

Stack Overflow用户
提问于 2012-09-21 23:40:46
回答 4查看 6.4K关注 0票数 5

我有一系列正在使用的蓝图,我希望能够将它们进一步捆绑到一个包中,以便尽可能无缝地与任何数量的其他应用程序一起使用。为应用程序提供整个引擎的一组蓝图。我在某种程度上创建了自己的解决方案,但它是手动的,需要太多的努力才能有效。它看起来不像是一个扩展,而且它是不止一个蓝图(几个提供公共功能的蓝图)。

完成了吗?多么?

(将多个程序捆绑在一起的应用程序调度方法可能不是我想要的)

EN

回答 4

Stack Overflow用户

发布于 2014-06-14 10:40:45

我希望Blueprint对象像Flask对象一样有一个register_blueprint函数。它会自动在当前蓝图的url下放置和注册蓝图。

票数 3
EN

Stack Overflow用户

发布于 2012-09-22 11:06:53

最简单的方法是创建一个函数,该函数获取Flask应用程序的一个实例,并一次性在该实例上注册所有蓝图。如下所示:

代码语言:javascript
复制
# sub_site/__init__.py
from .sub_page1 import bp as sb1bp
from .sub_page2 import bp as sb2bp
# ... etc. ...

def register_sub_site(app, url_prefix="/sub-site"):
    app.register_blueprint(sb1bp, url_prefix=url_prefix)
    app.register_blueprint(sb2bp, url_prefix=url_prefix)
    # ... etc. ...


# sub_site/sub_page1.py
from flask import Blueprint

bp = Blueprint("sub_page1", __name__)

@bp.route("/")
def sub_page1_index():
    pass

或者,您可以使用类似HipPocketautoload function (完全公开:我写了HipPocket)来简化导入处理:

代码语言:javascript
复制
# sub_site/__init__.py
from hip_pocket.tasks import autoload

def register_sub_site(app,
                          url_prefix="/sub-site",
                          base_import_name="sub_site"):
    autoload(app, base_import_name, blueprint_name="bp")

然而,根据目前的情况,您不能使用与示例1相同的结构(HipPocket假设您对每个蓝图都使用了包)。相反,您的布局将如下所示:

代码语言:javascript
复制
# sub_site/sub_page1/__init__.py
# This space intentionally left blank

# sub_site/sub_page1/routes.py
from flask import Blueprint

bp = Blueprint("sub_page1", __name__)

@bp.route("/")
def sub_page1_index():
    pass
票数 2
EN

Stack Overflow用户

发布于 2021-06-02 00:26:12

查看以下内容:Nesting https://flask.palletsprojects.com/en/2.0.x/blueprints/#nesting-blueprints

代码语言:javascript
复制
parent = Blueprint('parent', __name__, url_prefix='/parent')
child = Blueprint('child', __name__, url_prefix='/child')
parent.register_blueprint(child)
app.register_blueprint(parent)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12533745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档