django的新手,正在寻找建立我的共享库的地方的建议。我正在计划创建我想在项目中的所有应用程序中使用的类。放置它们的最佳位置在哪里?
e.x抽象模型
的问候,
答案 0 :(得分:14)
我们通常将项目设置为:
/site/
__init__.py
manage.py
settings.py
urls.py
/apps/
__init__.py
/appA/
__init__.py
/appB/
__init__.py
/lib/
__init__.py
/django-lib/
__init__.py
/shared-lib/
__init__.py
只需确保您的站点目录位于您的python路径上:
import sys
sys.path.append('/path/to/site/')
此外,确保站点,应用程序和lib中存在init.py,以便可以使用点表示法导入将它们视为模块(import site.lib.shared-lib)
编辑:
在回答有关python路径的问题时,这一切都与“manage.py”或等效文件所在的位置有关。如果它位于/ site /目录下(在apps和lib旁边),则PYTHONPATH应该没问题。
您需要确保每个目录都包含一个名为__init__.py
的空文件。这告诉Python将该目录视为模块。请参阅上面新的和改进的ASCII艺术。
答案 1 :(得分:9)
我从Two Scoops of Django学到的是,您将共享代码放在您自己创建的名为core
的Django应用程序中。
使用core
应用程序与您从其他应用程序交叉使用类的方式类似。
要了解更多信息,请转到标题为“那些随机公用事业怎么样?”的书的第28章。
答案 2 :(得分:0)
如果您想要,可以在PYTHON_PATH中导入它们。
答案 3 :(得分:0)
如果共享库也将在其他项目中使用,您可以使用distutils制作安装程序。 但如果只是项目中的应用程序,你可以采取AntonioP的答案。
请记住,当您运行django项目时,项目的根目录(包含manage.py的文件夹)始终位于PYTHON_PATH中,因此您可以创建文件夹deps
或dependencies
或{{ 1}}或您喜欢的任何包含共享库的内容。