MTV和MVC模式,初识模板
MTV和MVC模式,初识模板
1、MTV和MVC模式:分层级进行管理
说到框架模式我们有必要简单的说下设计模式,了解下设计模式这个概念,因为有人对设计模式和框架模式的概念经常混淆
设计模式:
是一套被反复使用,多数人知道并经过分类的代码设计经验总结,是为了解决一些通用性问题的
目的:重用代码并保证代码的可靠性
设计模式分类:单例,抽象工厂 等等 23种模式
一句话总结:解决某一些特殊问题的一种思想和思路
框架模式:
代码重用,框架模式是解决如何设计程序框架的代码,在框架模式中会包含多种设计模式,与设计模式是一种包含关系,
举例来说:比如要盖楼,那怎么盖楼属于框架模式,楼里面的电梯怎么设计,楼梯怎么设计,属于设计模式,所以框架模式在
盖楼中属于如何把楼盖起来,那么他里面会包含多种设计模式,具体的细节碰到不同的东西,会采用不同的设计模式来解决,
因此在一种框架模式中会包含多种设计模式。
目前流行的框架模式:
MVC(适用于多种编程语言,单在python中不常用):
M:Models 模型层,在程序中用于处理数据逻辑的部分,(主要是处理数据),主要负责在数据库中对数据的存取
操作,其实就是对数据库的增删改查的操作
V:Views 视图层 ,在应用程序中处理显示部分的内容(html,jsp)
C: Controllers 控制层 ,处理用户交互的部分,主要作用于M和V之间做协调,通常是负责从模型层中抽取数据,再
进行业务处理,最后将数据传给视图层,并将视图传给客户端
详解:用户首先打开浏览器,输入网址,然后浏览器向服务器发送请求,到了服务器之后,由控制层接收这个请求,接收完请求就知道用
户想要做什么,了解了用户的意图,如果需要用到一些数据,比如想查看某某商品的信息,那么控制器就需要找到商品的信息,所以控制
器就找模型层了,模型层会根据数据库创建模型(注意模型层不是数据库)一般情况数据库有多少张表,那么模型层就有多少个类,每个
表中有多少个字段,模型层中的类就有多少个变(属性),在模型层里还会提供增删改查的操作,那么这个执行结构再反馈给控制器,到
此,控制层和模型层的交互完成了,接下来,控制层就会把接收到的数据发送给视图,视图会把数据显示在网页里,反馈给浏览器,这样
用户就看到了
MTV(django)
M:模型层,功能同上
T:templates:模板层,用于处理用户显示部分的内容,和MVC中的V是一样的,通过html展示
V:views 视图层,在MTV中视图层是处理用户交互的部分,从模型层中获取数据,再将数据交给模板层,再先是给用
户和MVC中的控制层用法一样
详解:用户打开浏览器,浏览器发送请求,视图层接收用户请求,接受完请求调用模型层,模型层根据数据库创建模型,进行增删改查等
操作,模型层处理完数据返回给视图层,视图层接收完数据调用模板层,模板层里存放HTML等页面,模板层会把HTML模板页面返回给视图
层,视图层填充数据到模板上,然后再返回给浏览器
2、Django
创建方式:两种,命令创建和pycharm直接创建
(1)命令创建:
django-admin startproject myset --(myset是项目名字)
(2)直接创建:
启动命令:python manage.py runserver 8080
3、python内置库sqlite
db.sqlite3
sqlite:terminal启动方式
初始化:python manage.py makemigrations
生成数据库:python manage.py migrate
4、模板链接:(模板语言)
user={"username":username,"sex":sex,"email":email}
user_list.append(user)
{% for i in user_list %}
<tr>
<td>{{i.username}}</td>
<td>{{i.sex}}</td>
<td>{{ i.email }}</td>
</tr>
{% endfor %}
MTV和MVC模式,初识模板的更多相关文章
- 理解django框架中的MTV与MVC模式
1.Models:一个抽象层,用来构建和操作你的web应用中的数据,模型是你的数据的唯一的.权威的信息源.它包含你所储存数据的必要字段和行为.通常,每个模型对应数据库中唯一的一张表. from dja ...
- MTV与MVC模式
MTV模型(django) M:模型层(models.py) 负责业务对象与数据库的对象(orm) T:templates 负责如何把页面展示给用户 V:views 负责业务逻辑,并在适当的时候调用m ...
- Web开发中 MTV模式与MVC模式的区别 联系 概念
MTV 与 MVC模式的区别 联系 概念: MTV: 所谓MTV指的就是: M:model (模型),指的是ORM模型. T:template (模板),一般Python都是使用模板渲染的方式来把HT ...
- 命名空间namespace、smarty使用(视图分离,MVC)、smarty模板语法、smarty缓存、MVC模式
一.命名空间:namespace 命名空间 可以理解为逻辑上的使用,为了防止重名 namespace :关键字 加载:require_once();//加载一次 include_once() 申明命名 ...
- 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组
真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳 ...
- 初识MVC模式
一.概念:MVC是 模型(Model),视图(View)和控制(Controller)的缩写,其目的实现Web系统的职能分工. 二.问题描述:通过一个简单的例子(计算圆面积)来体会MVC模式和普通的s ...
- MVC模式和Spring MVC初识
概述 传统的Model1和Model2 在Model1的模式下,整个Web应用几乎全部是由JSP页面组成,接受和处理用户请求,并对请求处理后直接做出响应:JSP身兼View和Controller两个角 ...
- MVC模式设计的Web层框架初识
struts是个什么东西? struts是一个按MVC模式设计的Web层框架,其实它就是一个大大的servlet,这个Servlet名为ActionServlet,或是ActionServlet的子类 ...
- 2019年6月14日 Web框架之Django_07 进阶操作(MTV与MVC、多对多表三种创建方式、前后端传输数据编码格式contentType、ajax、自定义分页器)
摘要 MTV与MVC 多对多表三种创建方式 ajax ,前后端传输数据编码格式contentType 批量插入数据和自定义分页器 一.MVC与MTV MVC(Model View Controller ...
- Django简介以及MVC模式
一.简介 Django,是当前Python世界里最负盛名且成熟的网络框架.最初用来制作在线新闻的Web站点. Django是一个基于python的web重量级框架 重指的是为发开者考虑的多 采用了MV ...
随机推荐
- MySQL原理简介—1.SQL的执行流程
大纲(2426字) 1.MySQL驱动的作用 2.Java系统中的数据库连接池的作用 3.MySQL中的数据库连接池的作用 4.网络连接必须让线程来处理 5.SQL接口会负责处理接收到的SQL语句 6 ...
- 高性能计算-openmp编程-(探究 for/collapse)(11)
1. 目标:探究嵌套循环 for 和 collapse 编程 2. 内容 (1). for 并行区默认对最近外层的循环控制变量私有,并对其划分并行,不必指明 private,内层循环体入口的循环控制变 ...
- mysql与mongodb、redis的性能对比,包含源代码
最近因为工作需要,所以研究了一下mongodb,但是不知道它的真实性能怎么样,所以对比mysql做了一些测试,现在只是插入操作,更新还没来得及弄,贴出来和大家分享一下(已经补齐redis部分) 1.数 ...
- 这些 JavaScript 编码习惯,让你最大程度提高你的项目可维护性!
前言: 因为 JavaScript 语言是一门极其松散.极其自由的语言,这意味着我们可以随心所欲的操作它,这是他的优点,但同时也是它的缺点.在编码过程中,我们需要一种良好的规范或者习惯来保持应用程序的 ...
- Echarts 基本使用
1.Echarts简介 ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求. ECharts 包含了以下特性: (1)丰富的可视化类型: 常规的折线图. ...
- Kettle连接MySQL数据库时提示Driver class 'org.gjt.mm.mysql.Driver' could not be found
使用Kettle连接MySQL数据库时,提示以下连接提示信息导致我们无法对数据库进行连接: Driver class 'org.gjt.mm.mysql.Driver' could not be fo ...
- 关于Pro addin中,控制dockpane的状态
在Pro SDK中,可以通过dackpane的Hide()方法,对面板进行隐藏. DockPane pane = FrameworkApplication.DockPaneManager.Find(& ...
- Spring Security并结合JWT实现用户认证(Authentication) 和用户授权(Authorization)
引言在Web应用开发中,安全一直是非常重要的一个方面.Spring Security基于Spring 框架,提供了一套Web应用安全性的完整解决方案. JwT (JSON Web Token) 是当前 ...
- Qt开源作品14-导航按钮控件
一.前言 导航按钮控件,主要用于各种漂亮精美的导航条,我们经常在web中看到导航条都非常精美,都是html+css+js实现的,还自带动画过度效果,Qt提供的qss其实也是无敌的,支持基本上所有的CS ...
- IntelliJ IDEA 2020+Maven+SSM框架正常编译并与行后端代码时控制台的提示信息