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

二、mvc概述

MVC设计模式即MVC框架。

MVC全名是Model View

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

三、代码

1、数据#coding:utf-8

'''模拟数据,当然,这是一个元组。也可以是任意的数据库,只要你喜欢'''

Quotes = ('过放荡不羁的生活,容易得像顺水推舟,但是要结识良朋益友,却难如登天。 —— 巴尔扎克',

'我读的书愈多,就愈亲近世界,愈明了生活的意义,愈觉得生活的重要。 —— 高尔基',

'人生并不像火车要通过每个站似的经过每一个生活阶段。人生总是直向前行走,从不留下什么。 —— 刘易斯',

'要永远觉得祖国的土地是稳固地在你脚下,要与集体一起生活,要记住,是集体教育了你。那一天你若和集体脱离,那便是末路的开始。 —— 奥斯特洛夫斯基',

'在学校和生活中,工作的最重要的动力是工作中的乐趣,是工作获得结果时的乐趣以及对这个结果的社会价值的认识。 —— 爱因斯坦')

2、模型层

只有模型层才能够直接访问数据#_*_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、控制器层#_*_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):

n = 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、视图层#_*_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、主程序#_*_coding:utf-8

'''主程序'''

from mvc.controller.quoteterminalcontroller import QuoteterminalController

def mains():

while True:

controller = QuoteterminalController()

controller.run()

if __name__ == '__main__':

mains()

python mvc_python mvc设计模式(一)相关推荐

  1. python算法基础设计模式,python常见的设计模式

    Python有设计模式么 Python设计模式主要分为三大类:创建型模式.结构型模式.行为型模式;三 大类中又被细分为23种设计模式,以下这几种是最常见的. 单例模式:是一种常用的软件设计模式,该模式 ...

  2. mvc设计模式现在过时了吗_尚学堂115——设计模式、源码分析以及SpringData

    设计模式 什么是设计模式?你是否在你的代码里面使用过任何设计模式? 设计模式是在软件设计中常见问题的通用.可反复使用.多数人知晓的一种解决方案或模板:这些解决方案是在相当长的一段时间内由众多软件开发人 ...

  3. Flutter开发之MVC设计模式:新建文件与导入文件(八)

    在前面的例子中,所有的代码和路由都是在main.dart 下写的.我们知道不管后台还是前端,不管是Android 还是iOS开发,都是基于MVC设计模式开发的.那么flutter是怎么使用MVC设计模 ...

  4. 第80节:Java中的MVC设计模式

    第80节:Java中的MVC设计模式 前言 了解java中的mvc模式.复习以及回顾! 事务,设置自动连接提交关闭. setAutoCommit(false); conn.commit(); conn ...

  5. IT兄弟连 JavaWeb教程 MVC设计模式

    MVC是Model-View-Controller的简称,即模型-视图-控制器.MVC是一种设计模式,它强制性地把应用程序的数据展示.数据处理和流程控制分开.MVC把应用程序分成3个核心模块:模型.视 ...

  6. JavaWeb:MVC设计模式

    1. MVC设计模式 MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controll ...

  7. Java设计模式(十四):MVC设计模式

    1. 应用场景 MVC设计模式广泛应用于桌面应用程序开发和网页页面开发这些与用户交互的应用场景中. 2.概念 众所周知MVC不是设计模式,是一个比设计模式更大一点的模式,称作设计模式不合理,应该说MV ...

  8. iOS中MVC设计模式

    在组织大型项目的代码文件时,我们常用MVC的思想.MVC的概念讲起来非常简单,就和对象(object)一样.但是理解和应用起来却非常困难.今天我们就简单总结一下MVC设计理念. MVC(Model V ...

  9. Java-Web JSTL标签库、自定义标签库和MVC设计模式

    目录 一.JSTL标签库 1.什么是JSTL 2.JSTL标签库 3.使用taglib指令导入标签库 4.core标签库常用标签 (1)out和set (2)remove (3)url (4)if ( ...

最新文章

  1. Bzoj4558 [JLoi2016]方
  2. xyplorer保存设置失败_XYplorer设置中文步骤详解教程
  3. Vysor:安卓手机放到电脑上用
  4. 对计算机技术的发展方向研究,网络技术发展对计算机技术的影响
  5. 线程高级应用-心得9-空中网的三道面试题,考察应试者的线程掌握的深度
  6. 迁移聊天记录到Teams
  7. switch分解试验部分-LAB4:VLAN VTP设置
  8. Spring Boot + Spring Data + Elasticsearch实例
  9. Ajax学习总结(1)——Ajax实例讲解与技术原理
  10. AttributeError: module ‘tensorflow‘ has no attribute ‘xxx‘
  11. JavaScript入门学习书籍的阶段选择
  12. 【目标跟踪】基于matlab Kalman滤波目标跟踪【含Matlab源码 388期】
  13. ST电机库的FOC部分解读笔记
  14. 好领导,本来应是挖渠人
  15. imagine php,Yii2第三方类库插件Imagine的安装和使用
  16. 2023程序员今年的一些现状
  17. 504 Gateway Time-out 是怎么回事?
  18. 云计算的“傲慢”与“偏见”
  19. 会话管理_优秀会话管理指南
  20. geo ftp环境变量 export source ~/.bashrc Linux中filezilla下载ftp文件 ftp.ncbi.nlm.nih.gov linux下载 ftp下载geo非原始数

热门文章

  1. php5.4.13.tar.bz2,编译安装PHP-5.4.13
  2. computed用发_Vue中的computed属性和nextTick方法
  3. python怎么加载库_Python库如何安装和导入
  4. jquery访问css类,jQuery - 获取并设置 CSS 类
  5. linux7空闲内存,centos7 内存占用率高处理问题
  6. 日期类型前后台传递格式控制注解@DateTimeFormat@JsonFormat@JSONField
  7. java web 启动顺序_JavaWeb开发Servlet过滤器链执行顺序详解
  8. python使用glob模块匹配文件及路径
  9. 嵌入网站的挖矿代码——Monerominer.rocks
  10. mysql-workbench 导入csv格式数据报错:Unhandled exception: Could not determine delimiter