python - Django,项目结构

标签 python django structure

我目前正在做一个 Django 项目。我在 Django 中并不完全陌生,但在弄清楚如何以最“djangonic”的方式组织一些文件时遇到了一些困难。

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

我面临的问题是我无法确定将这些源文件放在哪里。

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

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

任何具有尊重“django 生活方式”的干净结构的想法?

谢谢

最佳答案

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

但假设您正在为学校设计一个内联网网站。你会有一个处理学生账户的应用程序,另一个生成时间表的应用程序,还有一个用于内部留言板的应用程序,等等。每个应用程序都定义了自己的模型(没有“项目级模型”),但应用程序可以导入彼此的模型(因此留言板帖子可以有一个 ForeignKey 字段从“学生”应用程序指向学生)。不需要“主要”或“核心”应用程序(另请参阅:来自 DjangoCon 的 James Bennett's "writing reusable Django applications" presentation)

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

关于python - Django,项目结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19463702/

相关文章:

python - 任务 Celery 中的 RuntimeError : Never call result. get()

python - 重新排序表单元素并更改 django 密码更改表单上的标签

php - 在 Django 中是否可以进行数据库查询而不必在 View 中呈现模板?

python - 如何检测十进制列是否应转换为整数或 double ?

python - 如何在 python 中模拟用户并使用 os.system

c - 如何在头文件中声明一个结构,该结构将被 c 中的多个文件使用?

c++ - 当一个结构有 c-tor 时,为什么我不能静态初始化它?

包含枚举的结构的 C++ 复制构造函数

Python - 测量 DNS 和往返时间

python - 安装 django-registration-redux 时没有名为 'django.urls' 的模块