proj/
├── proj/
│ ├── settings.py 只存放 Django ⾃身的配置
│ ├── other_config.py 其他配置 (写第三方的配置,跟其他系统对接的配置)
│ ├── urls.py
│ └── wsgi.py
├── common/ 不与具体模块关联的独⽴的东⻄写到这⾥
│ ├── errors.py
│ ├── keys.py (写各种缓存key的模板)
│ └── middleware.py (中间件 from django.utils.deprecation import MiddlewareMixin)
├── admin ⼯作中的 admin 本身就是⼀个独⽴模块
├── app1/
│ ├── migrations/
│ ├── apps.py
│ ├── helper.py (logic.py) 逻辑写到这⾥
│ ├── models.py
│ └── views.py (api.py)
├── app2/
│ ├── migrations/
│ ├── apps.py
│ ├── helper.py
│ ├── models.py
│ └── views.py (api.py)
├── scripts/ 项⽬维护的脚本
│ ├── xxx.py
│ └── yyy.sh
├── libs/ 底层模块写到这⾥
│ ├── cache.py
│ ├── http.py
│ ├── orm.py
│ └── sms.py
├── worker/ 异步任务,或耗时任务,或定时任务
│ ├── init.py
│ └── config.py
└── manage.py
通⽤的算法、功能放到 common ⽬录
底层的功能放到 lib ⽬录
独⽴脚本的放到 scripts ⽬录
配置⽂件放到项⽬⽬录 或 config ⽬录
views.py 及 view_func()
1. MVC 模式的 V 只负责试图处理, 逻辑属于 Controller 层
2. view_func 本身不适合写逻辑, view 是特殊函数, 只负责视图处理。
3. 添加 helper.py ⽂件, ⽤来放置每个 app 的逻辑函数
4. 函数构建应保持功能单⼀, ⼀个函数只做⼀件事情, 并把它做好, 避免构建复杂函 数
5. 复杂功能通过不同函数组合完成