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原理简介—5.存储模型和数据读写机制
大纲 1.为什么不能直接更新磁盘上的数据 2.为什么要引入数据页的概念 3.一行数据在磁盘上是如何存储的 4.一行数据中的NULL值是如何处理的 5.一行数据的数据头存储的是什么 6.一行数据的真实数 ...
- Java深度历险(一)——Java字节代码的操纵
[编者按]Java作为业界应用最为广泛的语言之一,深得众多软件厂商和开发者的推崇,更是被包括Oracle在内的众多JCP成员积极地推动发展.但是对于Java语言的深度理解和运用,毕竟是很少会有人涉及的 ...
- Python框架之FastAPI
原起: 最近项目中现存的是使用的python的异步方式进行开发, 但是只是存在脚本部分, 并没有提供对外的Web服务,正好趁机将Fastapi嵌入其中使用. 官方文档: https://fastapi ...
- Three.js入门-常见几何体
这章节,我们将介绍 Three.js 中常见的几何体(Geometry),包括立方体.球体.圆柱体.平面.圆环.圆锥体等.几何体是构建 3D 模型的基础元素,通过不同的几何体可以创建出各种形状的物体. ...
- Python版本与Jupyter记录
最近使用Python的时候,遇到一个版本问题.我本地安装的Python版本是3.8.0,在使用match...case...语法时,提示如下报错: 查询之后,才知晓3.8.0还没有match语法,ma ...
- Javascript之常用尺寸、位置获取
标签: js 缘起 平时在开发中或多或少需要去获取元素尺寸,特此记录常用的尺寸获取方案. 常用相关尺寸 窗口可视尺寸 测试地址 /** * 获取窗口可视尺寸 */ function getWindow ...
- CentOS中升级openssl与卸载重装以及提示:error while loading shared libraries: libssl.so.1.1: cannot open shared obje
场景 在CentOS6中安装sqlserver时提示: Requires:openssl >=1:1.0.1g 所以需要对openssl进行升级 可以通过 openssl version -a ...
- TheScope, Visibility and Lifetime of Variables
C language-- TheScope, Visibility and Lifetime of Variables 全局变量 普通全局变量 //file1 #include<stdio.h& ...
- Qt编写视频监控系统67-录像计划(支持64通道7*24录像设置)
一.前言 录像计划这个功能一直挂了很久,之前做的也都有保存视频文件功能,其中还分了三大种,第一种是手动开启和停止录像:第二种是按照指定时长比如10s保存文件:第三种是定时30分钟一个文件一直保存.这三 ...
- C#HTTP网络请求时GetResponseAsync()方法抛出“远程服务器返回错误: (411) 所需的长度”异常
在请求HttpWebRequest的报了如下的错误"远程服务器返回错误: (411) 所需的长度",结果网上 百度了一下说,再请求POST的时候,若没有参数的情况下,需要将进行如下 ...