Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte grafische Erläuterung der dreistufigen Python-Architektur

Detaillierte grafische Erläuterung der dreistufigen Python-Architektur

高洛峰
高洛峰Original
2017-03-12 10:44:484082Durchsuche

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:


这篇文章图文详解python三层架构

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:

这篇文章图文详解python三层架构

#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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn