>  기사  >  백엔드 개발  >  Python 3계층 아키텍처에 대한 자세한 그래픽 설명

Python 3계층 아키텍처에 대한 자세한 그래픽 설명

高洛峰
高洛峰원래의
2017-03-12 10:44:484084검색

이 글은 그림과 글로 자세히 설명하고 있습니다python3티어 아키텍처

3티어 아키텍처(3 계층 아키텍처) 일반적으로 3계층 아키텍처는 전체 비즈니스 애플리케이션
프레젠테이션 계층(프레젠테이션 계층), 비즈니스 로직 계층(Business Logic)으로 나누는 것입니다. 레이어), 데이터 액세스 레이어(데이터 액세스 레이어).


레벨을 구분하는 목적은 "높은 응집력과 낮은 결합력"이라는 아이디어입니다.
높은 응집력과 낮은 결합도는 소프트웨어 공학의 개념이자 디자인의 좋고 나쁨을 판단하는 기준이며 주로 객체 지향 디자인에 달려 있습니다. 클래스의 응집력은 성별이 높고 결합 정도가 낮은지 여부입니다.
응집력은 모듈의 요소가 얼마나 밀접하게 결합되어 있는지를 나타냅니다. 높은 응집력은 모듈의 요소가 얼마나 밀접하게 결합되어 있는지를 나타냅니다.


소위 응집력이 높다는 것은 소프트웨어 모듈이 관련도가 높은 코드로 구성되어 하나의 작업만 담당하는 것을 의미하는데, 이를 흔히 단일 책임 원칙이라고 합니다.
커플링: 소프트웨어 구조 내에서 서로 다른 모듈 간의 상호 연결 정도를 나타내는 척도(커플링은 블록 간 연결이라고도 합니다. 소프트웨어 시스템 구조
모듈 간 연결이 촘촘할수록 결합력은 강해지고, 모듈 간 결합 정도는 인터페이스의 복잡성에 따라 달라집니다. 모듈 간, 호출 방법 및 전달된 정보)
낮은 결합의 경우 대략적인 이해는 다음과 같습니다.
가능한 한 완전한 시스템 모듈 간에 독립적으로 존재하도록 합니다.
즉, 각 모듈이 특정 하위 기능을 최대한 독립적으로 완료하도록 하세요.
모듈 간의 인터페이스는 가능한 한 적고 단순해야 합니다.
두 모듈의 관계가 상대적으로 복잡하다면 먼저 추가 모듈 분할을 고려하는 것이 가장 좋습니다.
수정 및 조합이 편리합니다.

아래와 같은 3계층 아키텍처:


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

1. 프리젠테이션 레이어(UI): 일반 용어로 사용자에게 표시되는 인터페이스, 즉 사용자가 시스템을 사용할 때 보고 얻는 것입니다.
2. 비즈니스 논리 계층(BLL): 특정 문제에 대한 작업은 데이터 계층 및 데이터의 비즈니스 논리 처리에 대한 작업이라고도 할 수 있습니다.
3. 데이터 액세스 계층(DAL): 이 계층에서 수행되는 트랜잭션은 데이터 추가, 삭제 , 수정, 검색 등을 위해 데이터베이스를 직접 운영합니다.

예:

这篇文章图文详解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()


위 내용은 Python 3계층 아키텍처에 대한 자세한 그래픽 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.