Django基础篇之MVC与MTV模型
目录:
- MVC和MTV架构
- MVC 模型
- MTV 模型
MVC和MTV架构
MVC 模型
MVC 模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)
MVC 以一种插件式的、松耦合的方式连接在一起。
- 模型(M)- 编写程序应有的功能,负责业务对象与数据- 库的映射(ORM)。
- 视图(V)- 图形界面,负责与用户的交互(页面)。
- 控制器(C)- 负责转发请求,对请求进行处理。
简易图:
用户操作流程图:
MTV 模型
Django 的 MTV 模式本质上和 MVC 是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django 的 MTV 分别是指:
- M 表示模型(Model):编写程序应有的功能,负责业务对象与数据库的映射(ORM)。
- T 表示模板 (Template):负责如何把页面(html)展示给用户。
- V 表示视图(View):负责业务逻辑,并在适当时候调用 Model和 Template
除了以上三层之外,还需要一个 URL 分发器,它的作用是将一个个 URL 的页面请求分发给不同的 View 处理,View 再调用相应的 Model 和 Template,MTV 的响应模式如下所示:
简易图:
用户操作流程图:
解析:
用户通过浏览器向我们的服务器发起一个请求(request),这个请求会去访问视图函数:
- a.如果不涉及到数据调用,那么这个时候视图函数直接返回一个模板也就是一个网页给用户
- b.如果涉及到数据调用,那么视图函数调用模型,模型去数据库查找数据,然后逐级返回
视图函数把返回的数据填充到模板中空格中,最后返回网页给用户
Django基础篇之MVC与MTV模型相关推荐
- Django 数据库查询优化,choices参数(数据库字段设计常见),MVC和MTV模型,多对多三种创建方式...
数据库查询优化 orm语句的特点:惰性查询 如果仅仅只是书写了orm语句,在后面没有用到该语句所查询出来的参数,那么orm会自动识别,并不执行 举例: res = models.Book.object ...
- Django基础学习笔记:初识MTV模式
文章目录 一.Django概述 (一)Django简史 (二)MTV框架模式 (三)Django与WSGI 二.Django案例演示 (一)创建PyCharm项目 (二)安装Django应用框架 (三 ...
- Django的简介和MVC及MTV的初步认识
已经总结了好几个月了,一直苦于没时间发,加上后来又忘记.现总结为xmind文件,我将它导出成图片的格式,便于发文. 下一篇:Django视图 https://blog.csdn.net/Chen ...
- django基础篇05-Form验证组件
Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 基本简单的操作: from django im ...
- django基础篇01-环境的搭建和项目的创建
本文参考自银角大王的博客 基本配置 常用命令: django-admin startproject xxx(项目名) python3 manage.py startapp xxx(app名) pyth ...
- Django基础篇(1)--介绍
这里是清安,欢迎查阅本篇文章.我的微信号是qing_an_an,欢迎来扰! 目录 安装 命令 创建项目 创建应用 运行项目 数据库 账号密码 重置密码
- Django基础-Web框架-URL路由
Django基础-Web框架-URL路由 一.Django基础–Web框架 MVC和MTV框架 MVC 把Web应用分为模型(M).视图(V).控制器(C)三层,他们之间以一种插件式的,松耦合的方式联 ...
- Django基础---Web框架、URL路由、视图函数、模板系统
文章目录 Django基础 Django基础---Web框架 MVC和MTV框架 MVC MTV Django下载与安装 基于Django实现一个简单的示例 get请求获取数据 post请求获取数据 ...
- 学一点django基础
学一点Django基础 目录 文章目录 目录 一.Django框架的介绍 Django的安装 Django框架开发 创建项目的指令 Django项目的目录结构 URL 介绍 视图函数(view) Dj ...
最新文章
- python利用决策树进行特征选择
- 利用 Rize 来进行 UI 测试或 E2E 测试
- 编写你的第一个 Django 应用,第 6 部分
- 使用腾讯开发平台获取QQ用户数据资料
- [python进阶]11接口:从协议到抽象基类
- 删除链表中指定节点,要求时间复杂度为O(1)
- 计算机科学家论文引用排名:LeCun终于晋身三巨头
- 详解Linux操作系统的系统备份与恢复
- 解决“npm不是内部或外部命令“
- 天涯明月刀java_天涯明月刀61副本 天涯明月刀副本详情介绍
- pandas excel 数据随机打乱
- 原神服务器不稳定,原神天空岛和世界树服务器哪个好
- Unite 2018 | 《崩坏3》:在Unity中实现高品质的卡通渲染
- 路由器做二级路由方法
- 计蒜客 A1596.蒜头君王国 概率计算(dp)
- ROX-Filer 2.6
- HTML 中的各种标记简介
- css中一个一个字显示效果
- git【--ours】及【--theirs】优雅的解决冲突
- 接近与环境光强度数字传感器-APDS9930
热门文章
- 程序员微信头像_这才是程序员的内心独白
- C# 子类实例化基类 基类使用不了子类的方法_C#学习笔记09--构造方法/析构方法/继承/多态/封装...
- AI公开课:19.05.22 Aya Soffer—IBM AI Tech VP《Advanced, scalable, and trusted AI 》课堂笔记以及个人感悟
- Paper之Algorithms:国内外Algorithms高质量论文、CUMCM分类推荐(建议收藏,持续更新)
- Keras之Mask R-CNN:《极限挑战》第四季第2期助力高考—使用Mask R-CNN代替Photoshop抠图、颜色填充框出目标检测/图像分割/语义分割
- TF之LiR:基于tensorflow实现手写数字图片识别准确率
- B. 熟练剖分(tree) (概率DP)
- Nginx集群session管理的两种方式
- python-day2~3
- 【数据库】分库分表策略