python三层设计_python 三层架构说明

三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:

表现层(Presentation layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。

区分层次的目的即为了"高内聚低耦合"的思想。

高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要是看类的内聚性是否高,耦合度是否低。

内聚就是一个模块内各个元素彼此结合的紧密程度,高内聚就是一个模块内各个元素彼此结合的紧密程度高。

所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。

耦合:一个软件结构内不同模块之间互连程度的度量(耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。

模块之间联系越紧密,其耦合性就越强,模块的独立性则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。)

对于低耦合,粗浅的理解是:

一个完整的系统,模块与模块之间,尽可能的使其独立存在。

也就是说,让每个模块,尽可能的独立完成某个特定的子功能。

模块与模块之间的接口,尽量的少而简单。

如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。

这样有利于修改和组合。

三层架构,如下图:

20161114162559618

1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。

2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。

3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。

示例:

1107574-20170311144942217-1668128942.png

ContractedBlock.gif

ExpandedBlockStart.gif

1 #coding:utf8

2

3 from utility.sql_helper importMySqlHelper4

5 classAdmin(object):6 def __init__(self):7 self.__helper =MySqlHelper()8

9 defGet_One(self,id):10 sql = "select * from userinfo where id = %s"

11 params =(id,)12 return self.__helper.Get_One(sql, params)13

14 defCheckValidate(self,username,password):15 sql = "select * from userinfo where name=%s and password=%s"

16 params =(username,password,)17 return self.__helper.Get_One(sql, params)18

19

admin.py

ContractedBlock.gif

ExpandedBlockStart.gif

1 #coding:utf8

2 importMySQLdb3 importconf4

5

6 classMySqlHelper(object):7 def __init__(self):8 self.__conn_dict =conf.conn_dict9 defGet_Dict(self,sql,params):10 conn = MySQLdb.connect(**self.__conn_dict)11 cur = conn.cursor(cursorclass =MySQLdb.cursors.DictCursor)12

13 reCount =cur.execute(sql,params)14 data =cur.fetchall()15

16 cur.close()17 conn.close()18 returndata19

20 defGet_One(self,sql,params):21 conn = MySQLdb.connect(**self.__conn_dict)22 cur = conn.cursor(cursorclass =MySQLdb.cursors.DictCursor)23

24 reCount =cur.execute(sql,params)25 data =cur.fetchone()26

27 cur.close()28 conn.close()29 return data

sql_helper

ContractedBlock.gif

ExpandedBlockStart.gif

1 #coding:utf8

2

3 conn_dict =dict(4 host='127.0.0.1',5 user='root',6 passwd='123456',7 db ='Admin'

8 )

conf.py

ContractedBlock.gif

ExpandedBlockStart.gif

1 #coding:utf8

2

3 from module.admin importAdmin4

5 defmain():6 user=raw_input('username:')7 pwd=raw_input("password:")8 admin =Admin()9 result =admin.CheckValidate(user, pwd)10 if notresult:11 print '用户名或密码错误'

12 else:13 print '进入后台登录界面'

14

15 if __name__== '__main__':16 main()

index.py

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值