分层明确高度定制化的 Python Flask MVC

缘由

Python在AI,AR VR这块使用越来越广泛。同时在Web方面也有很多成熟的框架。而我本身由于使用Flask 比较多,个人认为就是比较简单,容易入手,可定制化强。这里我将我经过多个项目多次迭代的自认为还可以的框架结构整理出来。方便自己可以更容易创建新项目。

大家也知道我录制了两门关于python的课程都是基于这个定制化的分层结构的框架开发系统的

目录结构


1

2

3

4

5

6

7

8

9

分层明确高度定制化的 Python Flask MVC

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

.

├── api api存放

│ ├── controllers 所有的C层放在这里

│ ├── interceptors 拦截器相关

├── application.py 封装的Flask的全局变量,包括app,数据库等

├── common 存放公用部分

│ ├── libs 公用方法或者类

│ ├── models 所有的数据库model

├── config 配置文件

│ ├── base_setting.py 基础配置

│ ├── develop_setting.py 开发环境

│ ├── local_setting_demo.py 本地开发环境配置demo

│ └── production_setting.py 生产环境的配置

├── docs 文档存放

│ ├── Mysql.md 所有数据库变更必须在这里记录

├── jobs 定时任务

│ ├── bin

│ └── tasks 所有定时任务都存放在这里

├── router 路由配置入口

│ ├── www.py 对应web的路由配置

│ └── api.py 对应api的路由配置

├── manage_web.py web启动入口

├── manage_job.py job定时器启动入口

├── manage_api.py api启动入口 (如果有api的话)

├── requirements.txt python 扩展

├── uwsgi.ini 生产环境uwsgi

├── web HTTP存放

│ ├── controllers 所有的C层放在这里

│ ├── interceptors 拦截器相关

│ ├── static 静态文件

│ └── templates 模板文件


功能特性

目录结构分层

相信代码分层很多人都听说。但是未必都能理解这样做会有什么好处。对于小型项目可能分不分不会有什么太大的问题,但是如果对于一个大型项目,分层就会带来特别明显的好处。大家翻阅代码知道去什么地方找,让开发和维护更加简洁。

多环境配置隔离

flask默认官方是有环境配置隔离方法的,我个人觉得官方的方式不太好,所以就结合以前使用php和在实际开发和运维当做自己规定了一套方案。如下 通过不同的配置文件做到多环境覆盖

例如 develop 可以是开发环境,production 是 生产环境,还可以增加test 为测试环境

通过环境变量ops_config 来进行切换


1

2

3

4

5

├── config 配置文件

│ ├── base_setting.py 基础配置

│ ├── develop_setting.py 开发环境

│ ├── local_setting_demo.py 本地开发环境配置demo

│ └── production_setting.py 生产环境的配置


支持多APP模式

很多情况我们可能要开发好几个应用,只有一个满足不了我们的需求。例如增加一个api,增加一个admin 都有可能。为了满足这种情况我就做了定制化架构。

通过不同的入口来决定不同的应用


作者:编程浪子
链接:https://www.imooc.com/article/301601
来源:慕课网
本文原创发布于慕课网 ,转载请注明出处,谢谢合作



分享到:


相關文章: