【发布时间】:2015-04-19 20:15:42
【问题描述】:
在 Flask 中进行开发时,我想将我所有的模型、控制器……放在它们自己的单独文件中。这样,我不必在大文件中寻找任何控制器、模型;它保持一切清洁。它可能如下所示:
/controllers
__init__.py
login.py
logout.py
profile.py
所有这些文件(几乎)具有相同的依赖关系。我不想一遍又一遍地将所有依赖项放在每个文件中。我想出的一种解决方案是使用depencies.py 文件,该文件导入所有依赖项,然后我将它们包含在每个单独的文件中。
/controllers
__init__.py
dependencies.py (all the imports)
login.py (import dependencies.py)
logout.py (import dependencies.py)
profile.py (import dependencies.py)
但是,这不是一个非常优雅的解决方案。我想知道是否可以做类似 __init__.py 之类的事情,它在顶部有依赖项,然后“包含”单独的文件,并且一切都以这种方式运行,因此您实际上不需要包含常见的依赖项在每个文件中。
我想做的事情的例子(不起作用):
#common dependencies
from app import mail
from flask import session
...
#actual models (which depend on these dependencies)
from user import User
from code import Code
from role import Role
【问题讨论】:
-
我只是将每个模块的依赖项放在模块中。如果每个模块 A B C 具有所有相同的依赖关系 X Y Z,那么可能有一些常见的行为可以从 A B C 中提取到 D 中。然后 A B C 可以依赖于 D 而不是 X Y Z。