python设计模式_MVC模式
任何一门语言, 各种基础规范是学习的前提,但是在后期的深入学习时,我觉得了解他们的设计模式和思想反而比了解他们所谓的高级操作更加符合语言学习的流程,他直接决定了我们后期再编程实现时的一种逻辑思想,就好比是一个习惯。
MVC模式对于一个开发技术人员来说,应该是耳听能详了, 之前开发项目基本上都是这种M_V_C的开发模式, 这种方式对于网站系统的开发,具有很高的可操作性,并且对于数据流和业务流都非常的容易,当然这都是我个人的感觉
那么MVC表示的是什么呢? 我从网上copy了一下
MVC
截图中实际上也简单说明了MVC的意思,大家了解就好,
今天主要是希望通过python的方式,来给大家展示一下什么是MVC,抛开公开的框架,对于python的开发,MVC也是可以应用这套理论
首先MVC,主要分为Model层, View层,Controller层
对于Model层,主要是就是实现与数据库的一些交互行为,比如初始化字段,获取数据库表记录等
class Person(object):
def __init__(self, first_name, last_name):
self.first_name = first_name
self.last_name = last_name
def name(self):
return ("{} {}".format(self.first_name, self.last_name))
@classmethod
def getAll(cls):
database = open('db.txt','r')
result = []
json_list = eval(database.read())
for item in json_list:
person = Person(item['first_name'], item['last_name'])
result.append(person)
return result
看代码可知道,该model下主要声明一个Person类,有第一名称和第二名称两个属性,并且有个实例方法name或者获得实例名称, 此外有个类方法实现对数据库的记录操作
对于View层,主要是对于页面输出的一些行为控制,比如输出html等
from model import Person
def showAllView(list):
print 'In our db we have %i users. Here they are:' % len(list)
for item in list:
print item.name()
def startView():
print 'MVC - the simplest example'
print 'Do you want to see everyone in my db?[y/n]'
def endView():
print 'Goodbye!'
看例子,可以看出,View层,没有和数据库相关的有任何的操作行为,主要是展示
对于Controller层, 就是一个关键点,按照我自己粗浅的理解,就是页面的数据展示和数据库的相关数据,都是通过这个逻辑控制层进行管理的,
def showAll():
peo_in_db = Person.getAll()
return showAllView(peo_in_db)
def start():
startView()
input1 = input()
if input1 == 'Y':
return showAll()
else:
return endView()
if __name__ == "__main__":
start()
分析上述代码可以知道, 通过showAll方法,将M和V两个数据进行关联,通过start方法,得到逻辑输入Y才进行展示的逻辑控制
总结:
MVC(MVT)实际上是做了前后端的数据的分离, 让Model主要负责数据库相关的交互, V主要负责前台的展示输出, 而C则负责将M中的数据可以放到V上面去展示。