使用耦合蓝图实现应用程序的正确烧瓶方式是什么?
我目前正在处理具有多个模块的项目。我根据数据库实体在逻辑上将应用程序分成模块,并将这些模块指定为蓝图。但是其中一些蓝图相互依赖:例如,蓝图 A 的视图使用来自蓝图 B 的内部方法(如在 db 中搜索,而不是视图),而来自 B 的另一个视图使用来自 A 的另一个内部方法。
当然,这是循环进口的原因。
处理此问题的最佳方法是将您的内部蓝图调用分离到一个单独的模块中。尝试将您的数据库逻辑集中在一个模块中,并且只在需要时创建特定的调用。
您的项目布局可能如下所示:
+ 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 您将在那里导入您需要的其他模型内容。