三層架構(3-tier architecture) 通常意義上的三層架構就是將整個業務應用分成:
表現層(Presentation layer)、業務邏輯層(Business Logic Layer)、資料存取層(Data access layer)。
區分層次的目的即為了"高內聚低耦合"的思想。
高內聚低耦合,是軟體工程中的概念,是判斷設計好壞的標準,主要是物件導向的設計,主要是看類別的內聚性是否高,耦合度是否低。
內聚就是一個模組內各個元素彼此結合的緊密程度,高內聚就是一個模組內各個元素彼此結合的緊密程度高。
所謂高內聚是指一個軟體模組是由相關性很強的程式碼組成,只負責一項任務,也就是常說的單一責任原則。
耦合:一個軟體結構內不同模組之間互連程度的度量(耦合性也叫塊間聯繫。指軟體系統結構中各模組間相互聯繫緊密程度的一種度量。
模組之間聯繫越緊密,其耦合性就越強,模組的獨立性則越差,模組間耦合的高低取決於模組間介面的複雜性,呼叫的方式以及傳遞的訊息。的使其獨立存在。
也就是說,讓每個模組,盡可能的獨立完成某個特定的子功能。
模組與模組之間的接口,盡量的少而簡單。
如果某兩個模組間的關係比較複雜的話,最好先考慮進一步的模組劃分。
這樣有利於修改和組合。
三層架構,如下圖:
1、表現層(UI):通俗講就是展現給使用者的介面,也就是使用者在使用一個系統的時候他的所見所得。 2、業務邏輯層(BLL):針對特定問題的操作,也可以說是對資料層的操作,對資料業務邏輯處理。 3、資料存取層(DAL):此層所做事務直接操作資料庫,針對資料的增添、
、修改、查找等。
#coding:utf8 from utility.sql_helper import MySqlHelper class Admin(object): def init(self): self.helper = MySqlHelper() def Get_One(self,id): sql = "select * from userinfo where id = %s" params = (id,) return self.helper.Get_One(sql, params) def CheckValidate(self,username,password): sql = "select * from userinfo where name=%s and password=%s" params = (username,password,) return self.helper.Get_One(sql, params)
#coding:utf8 import MySQLdb import conf class MySqlHelper(object): def init(self): self.conn_dict = conf.conn_dict def Get_Dict(self,sql,params): conn = MySQLdb.connect(**self.conn_dict) cur = conn.cursor(cursorclass = MySQLdb.cursors.DictCursor) reCount = cur.execute(sql,params) data = cur.fetchall() cur.close() conn.close() return data def Get_One(self,sql,params): conn = MySQLdb.connect(**self.conn_dict) cur = conn.cursor(cursorclass = MySQLdb.cursors.DictCursor) reCount = cur.execute(sql,params) data = cur.fetchone() cur.close() conn.close() return data
#coding:utf8 conn_dict = dict( host='127.0.0.1', user='root', passwd='123456', db ='Admin' )
#coding:utf8 from module.admin import Admin def main(): user=raw_input('username:') pwd=raw_input("password:") admin = Admin() result = admin.CheckValidate(user, pwd) if not result: print '用户名或密码错误' else: print '进入后台登录界面' if name== 'main': main()
以上是圖解詳解python三層架構的詳細內容。更多資訊請關注PHP中文網其他相關文章!