引入
mvc應(yīng)對(duì)小型項(xiàng)目是沒問題的,但是對(duì)于中型屉佳,或者中大型項(xiàng)目就會(huì)顯得很困窘,因此這里引入三層架構(gòu)
圆凰。
有那三層那专钉?
- 1跃须、數(shù)據(jù)訪問層:直接操作數(shù)據(jù)庫(kù)
- 2、業(yè)務(wù)處理層:根據(jù)表現(xiàn)層結(jié)合數(shù)據(jù)訪問層處理數(shù)據(jù)尽楔,處理數(shù)據(jù)翔试。
- 3复旬、表現(xiàn)層:通過客戶端的不同請(qǐng)求展現(xiàn)不同的結(jié)果驹碍。
下面結(jié)合具體文件夾分析這三個(gè)層志秃。
數(shù)據(jù)訪問層 (Dao文件)
操作數(shù)據(jù)庫(kù)的浮还,單一職責(zé)钧舌,一表一類洼冻。
一個(gè)表一個(gè)類:數(shù)據(jù)庫(kù)中的表對(duì)應(yīng)這里的一個(gè)類撞牢,可以鏈接數(shù)據(jù)庫(kù)對(duì)表的操作增、刪所宰、改畜挥、查操作都在這個(gè)類里面砰嘁。
業(yè)務(wù)處理層 (Service文件)
接受表現(xiàn)層傳入的數(shù)據(jù),然后結(jié)合數(shù)據(jù)訪問層對(duì)數(shù)據(jù)進(jìn)行處理斟冕,并將處理的結(jié)果返回。
業(yè)務(wù)層要獲取不同表種的信息景描,所以可以操作多張表秀撇,同時(shí)相當(dāng)于操作數(shù)據(jù)層的多個(gè)類棠绘。
處理相關(guān)業(yè)務(wù)氧苍,如:登陸泛范,下面是一個(gè)登錄的簡(jiǎn)化過程:
用戶將用戶名和密碼傳入后臺(tái),后臺(tái)將數(shù)據(jù)傳入業(yè)務(wù)處理層赡突,在業(yè)務(wù)處理層中會(huì)調(diào)動(dòng)數(shù)據(jù)訪問層惭缰,對(duì)接受的數(shù)據(jù)進(jìn)行驗(yàn)證从媚,賬號(hào)密碼是否和數(shù)據(jù)層返回的對(duì)應(yīng)數(shù)據(jù)的匹配,匹配返回登錄成功喷众,不匹配返回登錄失敗昌渤。
表現(xiàn)層 (Web文件)
文件夾內(nèi)容展示:
- Controllers:根據(jù)客戶端的請(qǐng)求方式膀息,將數(shù)據(jù)分發(fā)到業(yè)務(wù)處理層對(duì)應(yīng)的操作潜支。
- Views:放置一些靜態(tài)的html頁面甸赃。
- Statics:一些靜態(tài)的css、js
- Form:自定義的組件
公共層
一些插件冗酿,session埠对,from,發(fā)郵件等裁替;放置處项玛。
文件夾內(nèi)容展示:
剩下文件
App.py:程序入口文件。
Mappery.py: 配置文件弱判,其中設(shè)置數(shù)據(jù)庫(kù)的形式(pymsql和ORM)襟沮,然后通過依賴注入,然后控制訪問數(shù)據(jù)庫(kù)的方式昌腰。
Config.py:配置文件臣嚣,如:數(shù)據(jù)庫(kù)的賬號(hào)、密碼等硅则。