【发布时间】:2012-02-22 13:17:09
【问题描述】:
我正在使用 Django,我喜欢将模型、视图和测试分成子目录。
但是,这意味着我需要在每个子目录中维护一个__init__.py,以导入该目录中的每个模块。
我宁愿打个电话,上面写着:
from some_library import import_everything
import_everything()
这与遍历当前目录并导入该目录中的每个 .py 文件具有相同的效果。
最好/最简单的实现方式是什么?
这是我的 django 应用程序目录(基本上)的样子:
some_django_app/
models/
__init__.py
create.py
read.py
update.py
delete.py
views/
__init__.py
create.py
read.py
update.py
delete.py
forms/
__init__.py
create.py
update.py
tests/
__init__.py
create.py
read.py
update.py
delete.py
因此,您可以看到,要制作一个“合适的”Django 应用程序,我的所有 init.py 文件都需要导入每个目录中的所有其他 .py 文件。我宁愿在那里有一些简单的样板。
【问题讨论】:
-
您能添加一个示例目录布局吗?
-
更新为包含目录布局。
-
请注意,
from . import *通常是个坏主意,因为命名空间可能会在您不知情的情况下被覆盖。见documentation on the subject