⼤型项目的代码布局
概览
proj/
├── proj/
│ ├── settings.py # 只存放 Django ⾃身的配置
│ ├── other_config.py # 其他配置
│ ├── urls.py
│ └── wsgi.py
├── common/ # 不与具体模块关联的独⽴的东⻄写到这⾥
│ ├── errors.py
│ ├── keys.py
│ └── middleware.py
├── 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()
- MVC 模式的 V 只负责试图处理, 逻辑属于 Controller 层
- view_func 本身不适合写逻辑, view 是特殊函数, 只负责视图处理。
- 添加 helper.py ⽂件, ⽤来放置每个 app 的逻辑函数
- 函数构建应保持功能单⼀, ⼀个函数只做⼀件事情, 并把它做好, 避免构建复杂函数
- 复杂功能通过不同函数组合完成