繁体   English   中英

Django,项目结构

[英]Django, project structure

我目前正在研究一个django项目。 我不是django中的新手,但是在确定如何组织一些文件的最“混合”方式方面有一些困难。

我有一些计算东西的classe,可以从manage.py的cli和webservice应用程序中使用。 这些计算使用我的核心应用程序中的模型并调用数据库。

我面临的问题是我无法确定将源文件放在何处。

我不想把它们放在'lib'文件夹中。 我认为这个文件夹中的模块将是django独立模块。

目前,该模块是我的应用程序的模型。 但由于它没有定义任何新的结构,我认为这不是最干净的方式。

有什么意识到拥有一个尊重'django生活方式'的干净结构?

谢谢

问题是,最“djangonic”的做法是不要有“核心应用程序”。 您应该努力将功能拆分为单独的应用程序。 我完全清楚这并不总是微不足道的。

但是,假设您正在为学校设计Intranet网站。 您将有一个应用程序处理学生的帐户,另一个应用程序生成时间表,另一个应用程序生成内部留言板等。每个应用程序定义自己的模型(没有“项目级模型”),但应用程序可以导入彼此模型(因此留言板帖子可以有一个指向来自“学生”应用程序的学生的ForeignKey字段)。 不需要“主要”或“核心”应用程序(另请参阅: James Bennett的“编写可重复使用的Django应用程序”演示文稿来自DjangoCon)

然后,您可以将管理命令放在命令处理的应用程序的management/commands目录中。 例如,如果命令从数据库中删除旧学生,它将进入students应用程序内的management/commands

如果该模块独立于Django,那么它应该是一个独立的Python包,并配有setup.py来安装它。 使用它的Django模型和Web服务可以像任何其他外部依赖项一样导入。

如果模块依赖于你的Django应用程序,那么它应该在应用程序的目录中。 如果它没有定义新模型,那么它不应该在models.py

这回答了你的问题了吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM