我刚开始学习Django,并想请教一个问题:在哪里放置我的共享库?我计划创建一些类,以便在项目的所有应用程序中使用。最好的位置在哪里?例如抽象模型。
谢谢!
我们通常这样设置我们的项目:
/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/')
还要确保在site、apps和lib中存在init.py文件,以便可以使用点符号导入方式(import site.lib.shared-lib)将它们视为模块。./lib/django-lib/
目录下? - Håken Lid我从 Two Scoops of Django 中学到的是,将共享代码放在自己创建的名为 core
的 Django 应用程序中。
然后使用 core
应用程序类似于如何跨应用程序使用类。
要了解更多,请查看书中第28章,标题为:“那些随机实用程序怎么样?”
如果共享库将在其他项目中使用,您可以使用distutils创建安装程序。 但是,如果仅用于项目中的应用程序,则可以采用AntonioP的答案。
请记住,在运行django项目时,您的项目根目录(包含manage.py的文件夹)始终在PYTHON_PATH中,因此您可以创建一个名为deps
、dependencies
、extra
或任何您喜欢的名称的文件夹,其中包含您的共享库。
无论你想要在哪里,只要它们在PYTHON_PATH中,你就可以导入它们。