分層明確高度定製化的 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
來源:慕課網
本文原創發佈於慕課網 ,轉載請註明出處,謝謝合作



分享到:


相關文章: