python mvc设计模式(一)

简介:

一、代码组织(目录结构)

wKioL1jKLZ3AIUejAAApgrcn4h0212.png-wh_50


二、mvc概述

MVC设计模式即MVC框架。

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑和数据显式分离的方法组织代码,将业务逻辑被聚集到一个部件里面,在界面和用户围绕数据的交互能被改进和个性化定制的同时而不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。


三、代码

1、数据

1
2
3
4
5
6
7
8
9
#coding:utf-8
 
'''模拟数据,当然,这是一个元组。也可以是任意的数据库,只要你喜欢'''
 
Quotes  =  ( '过放荡不羁的生活,容易得像顺水推舟,但是要结识良朋益友,却难如登天。 —— 巴尔扎克' ,
           '我读的书愈多,就愈亲近世界,愈明了生活的意义,愈觉得生活的重要。 —— 高尔基' ,
           '人生并不像火车要通过每个站似的经过每一个生活阶段。人生总是直向前行走,从不留下什么。 —— 刘易斯' ,
           '要永远觉得祖国的土地是稳固地在你脚下,要与集体一起生活,要记住,是集体教育了你。那一天你若和集体脱离,那便是末路的开始。 —— 奥斯特洛夫斯基' ,
           '在学校和生活中,工作的最重要的动力是工作中的乐趣,是工作获得结果时的乐趣以及对这个结果的社会价值的认识。 —— 爱因斯坦' )

2、模型层
只有模型层才能够直接访问数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#_*_coding:utf-8
from  mvc.database.quote  import  Quotes  #导入数据
 
 
class  QuotesModel( object ):
     '''模型层'''
     def  get_quote( self ,index):
         '''根据索引读取数据
         @parameter index 索引值
         '''
         try :
             valve  =  Quotes[index]
         except  IndexError as err:
             valve  =  'Not Found!'
         return  valve

3、控制器层

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#_*_coding:utf-8
from  mvc.model.quote_model  import  QuotesModel
from  mvc.view.quoteterminalview  import  QuoteTerminalView
 
class  QuoteterminalController( object ):
     '''控制器层'''
     def  __init__( self ):
         self .model  =  QuotesModel()
         self .view  =  QuoteTerminalView()
 
     def  run( self ):
         =  self .view.select_quote()
         try :
             index  =  int (n)
             quote  =  self .model.get_quote(index)
             self .view.show(quote)
         except  ValueError as err:
             self .view.error( '不合法的索引值' )

4、视图层

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#_*_coding:utf-8
 
class  QuoteTerminalView( object ):
     '''视图层'''
     def  show( self , quote):
         '''显示查询结果
         @parameter quote 接收数据'''
         print ( '您查询到的名人名言是:%s'  %  (quote))
 
     def  error( self , msg):
         '''打印错误消息
         @msg msg 接收错误消息'''
         print ( "error: %s"  %  (msg))
 
     def  select_quote( self ):
         '''读取用户的选择'''
         return  raw_input ( "请输入编号进行查询:" )

5、主程序

1
2
3
4
5
6
7
8
9
10
11
#_*_coding:utf-8
'''主程序'''
from  mvc.controller.quoteterminalcontroller  import  QuoteterminalController
 
def  mains():
     while  True :
         controller  =  QuoteterminalController()
         controller.run()
 
if  __name__  = =  '__main__' :
     mains()




本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1907210



相关文章
|
4月前
|
前端开发 数据库 Python
Python Web 开发: 解释 Django 框架的 MVC 架构是什么?
Python Web 开发: 解释 Django 框架的 MVC 架构是什么?
|
4月前
|
设计模式 前端开发 Java
Java设计模式【二十六】:MVC模式
Java设计模式【二十六】:MVC模式
34 0
|
2月前
|
设计模式 存储 前端开发
Java Web开发中MVC设计模式的实现与解析
Java Web开发中MVC设计模式的实现与解析
|
2月前
|
设计模式 数据挖掘 开发者
Python中的面向对象编程与设计模式
【2月更文挑战第1天】Python作为一种动态、面向对象的高级编程语言,广泛应用于Web开发、数据分析等领域。本文将介绍Python中的面向对象编程特性,并结合常用的设计模式,探讨如何在Python中实现灵活、可维护的代码结构。
15 2
|
7月前
|
设计模式 分布式计算 算法
Python后端技术栈(三)--设计模式
Python后端技术栈(三)--设计模式
|
3月前
|
设计模式 存储 前端开发
【各种问题处理】MVC、MVP、MVVM 、MVI、VIPER 架构(设计模式)
【1月更文挑战第13天】【各种问题处理】MVC、MVP、MVVM 、MVI、VIPER 架构(设计模式)
|
3月前
|
设计模式 缓存 测试技术
python的装饰器与设计模式中的装饰器模式
python的装饰器与设计模式中的装饰器模式
|
8月前
|
设计模式 存储 Python
【从零学习python 】46. Python中的__new__和__init__方法解析及单例设计模式
【从零学习python 】46. Python中的__new__和__init__方法解析及单例设计模式
41 0
|
9月前
|
设计模式 前端开发 JavaScript
|
4月前
|
设计模式 前端开发 Java
MVC到底是设计模式还是软件架构?
MVC到底是设计模式还是软件架构?
91 0