首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django,项目结构

Django,项目结构
EN

Stack Overflow用户
提问于 2013-10-19 07:42:50
回答 2查看 2.3K关注 0票数 4

我目前正在做一个django项目。我在django并不是完全新来的,但在如何组织一些文件时遇到了一些困难。

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

我面临的问题是我不知道把这些源文件放在哪里。

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

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

有任何ideo有一个清洁的结构,尊重'django的生活方式‘?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-19 07:49:28

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

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

这能回答你的问题吗?

票数 1
EN

Stack Overflow用户

发布于 2013-10-19 07:50:04

问题是,最“神秘莫测”的方式是而不是拥有一个“核心应用程序”。您应该努力将这些功能分成不同的应用程序。我很清楚这并不总是琐碎的事。

但假设你正在为一所学校设计一个内联网网站。你会有一个处理学生账户的应用,另一个生成时间表的应用,还有一个用于内部留言板等等。每个应用都定义了自己的模型(没有“项目级模型”),但应用程序可以相互导入模型(因此留言板帖子可以有一个ForeignKey字段指向“学生”应用程序中的学生)。没有必要使用“主”或“核心”应用程序(另请参阅:James Bennett的“编写可重用Django应用程序”演示文稿 from DjangoCon)

然后,将管理命令放在命令处理的应用程序的management/commands目录中。例如,如果一个命令将老学生从db中删除,它将进入students应用程序中的students

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19463702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档