python 三層架構說明

2022-05-30 09:33:07 字數 3383 閱讀 8262

三層架構(3-tier architecture) 通常意義上的三層架構就是將整個業務應用劃分為:

表現層(presentation layer)、業務邏輯層(business logic layer)、資料訪問層(data access layer)。

區分層次的目的即為了"高內聚低耦合"的思想。

高內聚低耦合,是軟體工程中的概念,是判斷設計好壞的標準,主要是物件導向的設計,主要是看類的內聚性是否高,耦合度是否低。

內聚就是乙個模組內各個元素彼此結合的緊密程度,高內聚就是乙個模組內各個元素彼此結合的緊密程度高。

所謂高內聚是指乙個軟體模組是由相關性很強的**組成,只負責一項任務,也就是常說的單一責任原則。

耦合:乙個軟體結構內不同模組之間互連程度的度量(耦合性也叫塊間聯絡。指軟體系統結構中各模組間相互聯絡緊密程度的一種度量。

模組之間聯絡越緊密,其耦合性就越強,模組的獨立性則越差,模組間耦合的高低取決於模組間介面的複雜性,呼叫的方式以及傳遞的資訊。) 

對於低耦合,粗淺的理解是:

乙個完整的系統,模組與模組之間,盡可能的使其獨立存在。

也就是說,讓每個模組,盡可能的獨立完成某個特定的子功能。

模組與模組之間的介面,盡量的少而簡單。

如果某兩個模組間的關係比較複雜的話,最好首先考慮進一步的模組劃分。

這樣有利於修改和組合。

三層架構,如下圖:

1、表現層(ui):通俗講就是展現給使用者的介面,即使用者在使用乙個系統的時候他的所見所得。

2、業務邏輯層(bll):針對具體問題的操作,也可以說是對資料層的操作,對資料業務邏輯處理。

3、資料訪問層(dal):該層所做事務直接運算元據庫,針對資料的增添、刪除、修改、查詢等。

示例:

1

#coding:utf823

from utility.sql_helper import

mysqlhelper45

class

admin(object):

6def

__init__

(self):

7 self.__helper =mysqlhelper()89

defget_one(self,id):

10 sql = "

select * from userinfo where id = %s

"11 params =(id,)

12return self.__helper

.get_one(sql, params)

1314

defcheckvalidate(self,username,password):

15 sql = "

select * from userinfo where name=%s and password=%s

"16 params =(username,password,)

17return self.__helper

.get_one(sql, params)

1819

admin.py

1

#coding:utf8

2import

mysqldb

3import

conf45

6class

mysqlhelper(object):

7def

__init__

(self):

8 self.__conn_dict =conf.conn_dict

9def

get_dict(self,sql,params):

10 conn = mysqldb.connect(**self.__conn_dict

)11 cur = conn.cursor(cursorclass =mysqldb.cursors.dictcursor)

1213 recount =cur.execute(sql,params)

14 data =cur.fetchall()

1516

cur.close()

17conn.close()

18return

data

1920

defget_one(self,sql,params):

21 conn = mysqldb.connect(**self.__conn_dict

)22 cur = conn.cursor(cursorclass =mysqldb.cursors.dictcursor)

2324 recount =cur.execute(sql,params)

25 data =cur.fetchone()

2627

cur.close()

28conn.close()

29return data

sql_helper

1

#coding:utf8

23 conn_dict =dict(

4 host='

127.0.0.1',

5 user='

root',

6 passwd='

123456',

7 db ='

admin

'8 )

conf.py

1

#coding:utf823

from module.admin import

admin45

defmain():

6 user=raw_input('

username:')

7 pwd=raw_input("

password:")

8 admin =admin()

9 result =admin.checkvalidate(user, pwd)

10if

notresult:

11print

'使用者名稱或密碼錯誤'12

else:13

print

'進入後台登入介面'14

15if

__name__== '

__main__':

16 main()

index.py

c mysql三層架構例項 三層架構例項

一 概要 這篇部落格,準備用乙個小demo來介紹應該實現三層架構。三層架構只是分層的一種經典形式,到底分幾層,要依具體情況而定,考慮到系統的複雜程度,和後期的可維護性,完全可以分四層,五層,甚至六層,七層。二 demo 1 實現語言 vb.net 2 需求 學校機房收費系統 中的乙個功能 操作員為學...

軟體架構 三層架構

三層系統的分層式結構 三層架構 3 tier architecture 通常意義上的三層架構就是將整個業務應用劃分為 區分層次的目的即為了 高內聚,低耦合 的思想。表現層 ui 通俗講就是展現給使用者的介面,即使用者在使用乙個系統的時候他的所見所得。業務邏輯層 bll 針對具體問題的操作,也可以說是...

三層架構 UI BLL DAL

通常意義上的三層架構就是將整個業務應用劃分為 表現層 ui 業務邏輯層 bll 資料訪問層 dal 區分層次的目的即為了 高內聚,低耦合 的思想。表現層 ui 通俗講就是展現給使用者的介面,即使用者在使用乙個系統的時候他的所見所得。業務邏輯層 bll 針對具體問題的操作,也可以說是對資料層的操作,對...