我通常在Django项目中有一些普通的python对象,它们具有特定的职责,例如观察员,策略对象,工厂等。对于那些组织得更好的文件结构,应该将其放在哪里?业界有一种模式吗?
答案 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
模块放在应用程序目录中。真的只是个人喜好。
希望有帮助。