加上烧瓶蓝图和圆形进口

时间:2014-09-29 08:36:42

标签: flask blueprint

使用耦合蓝图实现应用程序的正确方法是什么?

我目前正在处理包含多个模块的项目。我根据数据库实体逻辑地将应用程序分离到模块中,并将这些模块指定为蓝图。但是其中一些蓝图彼此依赖:例如,蓝图A的视图使用蓝图B中的内部方法(如在db中搜索,而不是视图),而B中的另一个视图使用A中的另一个内部方法。

当然,它导致循环进口。

1 个答案:

答案 0 :(得分:0)

处理此问题的最佳方法是将内部Blueprint调用解耦为单独的模块。尝试将数据库逻辑集中在一个模块中,并在需要时仅创建特定的调用。

您的项目布局可能如下所示:

+ App
|
|`--+ models
|   |`-- __init__.py
|   |`-- models.py
|    `-- utils.py
|
 `--+ blueprints
    |`-- __init__.py
    |`-- blueprint_a.py
     `-- blueprint_b.py

然后在App/blueprints/__init__.py您导入模型和模型助手。在blueprint_a.py中,您可以导入您需要的模型内容和blueprint_b.py,然后导入您需要的其他模型。