我正在开发一个 Python App Engine 应用程序,我想将源代码文件的内容拆分Models.py
为每个模型的单独文件,但我想将它们全部放在一个名为 Models 的文件夹中。问题是当我这样做时,我的应用程序再也找不到这些类了。我该怎么办?
这个问题不是关于 MVC而是另一个同名的问题是.
我正在开发一个 Python App Engine 应用程序,我想将源代码文件的内容拆分Models.py
为每个模型的单独文件,但我想将它们全部放在一个名为 Models 的文件夹中。问题是当我这样做时,我的应用程序再也找不到这些类了。我该怎么办?
这个问题不是关于 MVC而是另一个同名的问题是.
在 Models 目录中放置一个空__init__.py
文件。
然后,在您的应用程序中;大概上一层,您可以像这样引用 Models 目录中的模块:
import Models
并用它做这样的事情:
Models.my_model.MyClassName
你也可以from
像这样使用关键字:
from Models import my_model
和这样的参考:
my_model.MyClassName
如果您只需要模块中的一种方法,您也可以这样做:
from Models.my_model import my_method_name
my_method_name()
文档的强制性链接。
为了回应您对亚当的回答的评论,关于 10 个类的 10 个导入,首先不要忘记 Python 中的每个模块不需要一个类。模块应该按功能组织,因此如果有意义的话,您可以将相关的类分组到一个文件中。
如果您仍然想一次性导入所有类,您可以使用语法将它们全部导入__init__.py
文件本身,然后只需导入包含模块 -并引用etc,甚至使用将类直接导入您的命名空间并直接引用它们。from submodule import Class
import mainmodule
mainmodule.Class1
from mainmodule import Class1, Class2, Class3
Adam Bernier 对包的工作方式进行了很好的技术描述。http://jcalderone.livejournal.com/39794.html中详细描述了如何安排和交付项目