【问题标题】:Coupled flask blueprints and circular imports耦合烧瓶蓝图和循环进口
【发布时间】:2014-09-29 08:36:42
【问题描述】:

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

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

当然,这是循环导入的原因。

【问题讨论】:

  • No.Order 重要的是不应该得到循环锁 IMO

标签: flask blueprint


【解决方案1】:

处理此问题的最佳方法是将您的内部蓝图调用分离到一个单独的模块中。尝试将您的数据库逻辑集中在一个模块中,并且只在需要时创建特定的调用。

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

+ 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 您可以在其中导入您需要的其他模型内容。

【讨论】:

    猜你喜欢
    • 2016-01-28
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 2012-06-16
    • 2012-07-23
    • 2022-08-17
    • 1970-01-01
    • 2020-05-25
    相关资源
    最近更新 更多