Heim > Artikel > Backend-Entwicklung > Detaillierte grafische Erläuterung der dreistufigen Python-Architektur
Dieser Artikel erklärt ausführlich mit Bildern und TextPythonDreistufige Architektur
Dreistufige Architektur (3 -Tier-Architektur) Im Allgemeinen besteht die dreistufige Architektur darin, die gesamte Geschäftsanwendung zu unterteilen in:
Präsentationsschicht (Präsentationsschicht) und Geschäftslogikschicht (Geschäftslogik). Layer), Datenzugriffsschicht (Datenzugriffsschicht).
Der Zweck der Ebenenunterscheidung ist die Idee von „hoher Kohäsion und geringer Kopplung“.
Hohe Kohäsion und geringe Kopplung sind ein Konzept in der Softwareentwicklung und ein Kriterium zur Beurteilung der Qualität eines Designs. Es handelt sich hauptsächlich um objektorientiertes Design und hängt hauptsächlich von der Kohäsion ab Ob das Geschlecht hoch und der Kopplungsgrad niedrig ist.
Kohäsion gibt an, wie eng die Elemente in einem Modul miteinander verbunden sind. Unter hoher Kohäsion versteht man, wie eng die Elemente in einem Modul miteinander verbunden sind.
Die sogenannte hohe Kohäsion bedeutet, dass ein Softwaremodul aus eng verwandten Codes besteht und nur für eine Aufgabe verantwortlich ist, was oft als Single-Responsibility-Prinzip bezeichnet wird.
Kopplung: Ein Maß für den Grad der Verbindung zwischen verschiedenen Modulen innerhalb einer Softwarestruktur (Kopplung wird auch als Blockverbindung bezeichnet). Sie bezieht sich auf ein Maß für die Nähe der Verbindung zwischen Modulen in einer Softwaresystemstruktur.
Je enger die Verbindung zwischen Modulen, desto stärker ist die Kopplung und desto schlechter ist die Unabhängigkeit des Moduls. Der Grad der Kopplung zwischen Modulen hängt von der Komplexität der Schnittstelle ab zwischen Modulen, der Aufrufmethode und den übergebenen Informationen)
Für eine geringe Kopplung gilt als grobes Verständnis:
Ein vollständiges System, soweit möglich zwischen Modulen, damit es unabhängig existiert.
Mit anderen Worten: Lassen Sie jedes Modul eine bestimmte Unterfunktion möglichst unabhängig erledigen.
Die Schnittstellen zwischen Modulen sollten möglichst wenige und einfache sein.
Wenn die Beziehung zwischen zwei Modulen relativ komplex ist, ist es am besten, zunächst über eine weitere Modulaufteilung nachzudenken.
Dies ist praktisch für Modifikationen und Kombinationen.
Dreistufige Architektur, wie unten gezeigt:
1. Präsentationsschicht (UI): Laienhaft ausgedrückt handelt es sich um die Schnittstelle, die dem Benutzer angezeigt wird, also um das, was der Benutzer sieht und erhält, wenn er ein System nutzt.
2. Geschäftslogikschicht (BLL): Operationen für bestimmte Probleme können auch als Operationen auf der Datenschicht und zur Geschäftslogikverarbeitung von Daten bezeichnet werden.
3. Datenzugriffsschicht (DAL): Die von dieser Schicht durchgeführten Transaktionen betreiben direkt die Datenbank zum Hinzufügen, Löschen , Ändern, Suchen usw. von Daten.
Beispiel:
#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()
Das obige ist der detaillierte Inhalt vonDetaillierte grafische Erläuterung der dreistufigen Python-Architektur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!