在Django项目中的哪里放置普通的python对象?

时间:2019-01-02 14:45:15

标签: django directory-structure

我通常在Django项目中有一些普通的python对象,它们具有特定的职责,例如观察员,策略对象,工厂等。对于那些组织得更好的文件结构,应该将其放在哪里?业界有一种模式吗?

2 个答案:

答案 0 :(得分:3)

这里没有什么像“行业标准”。 Django确实对Django特定的东西(模型,自定义模板标签和过滤器,管理命令等)和一些约定(例如视图和urls模块)有一些期望-您可以根据需要随意命名它们,但每个人都希望它们能够被命名为“ views”和“ urls”),但是其他所有内容都只是纯python代码,可以进行组织,但是对您来说有意义。这里唯一的要求是显而易见的要求-高内聚力,低耦合等...

答案 1 :(得分:0)

我无法评论这种方法被采用的程度,或者它是否是正确的方法,我个人遵循Two Scoops of Django book中概述的项目结构。 https://django-project-skeleton.readthedocs.io/en/latest/structure.html在此处概述了类似的设置,如下所示:

[projectname]/                  <- project root
├── [projectname]/              <- Django root
│   ├── __init__.py
│   ├── settings/
│   │   ├── common.py
│   │   ├── development.py
│   │   ├── i18n.py
│   │   ├── __init__.py
│   │   └── production.py
│   ├── urls.py
│   └── wsgi.py
├── apps/
│   └── __init__.py
├── configs/
│   ├── apache2_vhost.sample
│   └── README
├── doc/
│   ├── Makefile
│   └── source/
│       └── *snap*
├── manage.py
├── README.rst
├── run/
│   ├── media/
│   │   └── README
│   ├── README
│   └── static/
│       └── README
├── static/
│   └── README
└── templates/
    ├── base.html
    ├── core
    │   └── login.html
    └── README

如果我想创建所有应用程序都可以访问的对象和函数,请在应用程序级别创建一个utils模块。如果要创建特定于某个应用程序的实用程序功能和对象,请将utils模块放在应用程序目录中。真的只是个人喜好。

希望有帮助。