使用耦合蓝图实现应用程序的正确方法是什么?
我目前正在处理包含多个模块的项目。我根据数据库实体逻辑地将应用程序分离到模块中,并将这些模块指定为蓝图。但是其中一些蓝图彼此依赖:例如,蓝图A的视图使用蓝图B中的内部方法(如在db中搜索,而不是视图),而B中的另一个视图使用A中的另一个内部方法。
当然,它导致循环进口。
答案 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,然后导入您需要的其他模型。