虽说是百家争鸣,但也有公认的工程化实践。我找了GitHub上star最多的叫做Django Edge的project skeleton,它的设计如下:
Top-directory
├── docs
├── logs
├── README.md
├── requirements
│ ├── base.txt
│ ├── development.txt
│ └── production.txt
├── requirements.txt
└── src
├── Your project name
│ ├── __init__.py
│ ├── logger.py
│ ├── settings
│ │ ├── base.py
│ │ ├── development.py
│ │ ├── local.sample.env
│ │ └── production.py
│ ├── urls.py
│ ├── views.py
│ └── wsgi.py
├── accounts
│ ├── admin.py
│ ├── forms.py
│ ├── migrations
│ ├── models.py
│ ├── templates
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── manage.py
├── media
├── profiles
│ ├── admin.py
│ ├── apps.py
│ ├── forms.py
│ ├── migrations
│ ├── models.py
│ ├── signals.py
│ ├── templates
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── static
│ ├── bootstrap
│ │ ├── css
│ │ ├── fonts
│ │ └── js
│ └── site
│ ├── css
│ ├── ico
│ ├── img
│ └── js
└── templates
非常的像那么回事。我又搜了其他实践的文章,找到了这张图:
国内的文章也有提到类似这2种项目结构的设计,特点是①app放置在单独目录统一管理,②requirements和settings按环境做拆分,等等等。我说说我的观点,一开始没有必要就按照这种标准的工程化实践来写项目,我更倾向于先凭自己的能力写一版,再不断重构和优化的方式。业务不同,能力不同,经验不同,写出来的代码自然也不同。不过在碰到问题时,可以参考借鉴,很可能别人已经提供了解决方案。
参考链接
https://www.cnblogs.com/df888/p/14105350.html
原文:https://www.cnblogs.com/cerofang/p/14106632.html