目录:

  • 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模型相关推荐

  1. Django 数据库查询优化,choices参数(数据库字段设计常见),MVC和MTV模型,多对多三种创建方式...

    数据库查询优化 orm语句的特点:惰性查询 如果仅仅只是书写了orm语句,在后面没有用到该语句所查询出来的参数,那么orm会自动识别,并不执行 举例: res = models.Book.object ...

  2. Django基础学习笔记:初识MTV模式

    文章目录 一.Django概述 (一)Django简史 (二)MTV框架模式 (三)Django与WSGI 二.Django案例演示 (一)创建PyCharm项目 (二)安装Django应用框架 (三 ...

  3. Django的简介和MVC及MTV的初步认识

    已经总结了好几个月了,一直苦于没时间发,加上后来又忘记.现总结为xmind文件,我将它导出成图片的格式,便于发文. 下一篇:Django视图    https://blog.csdn.net/Chen ...

  4. django基础篇05-Form验证组件

    Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 基本简单的操作: from django im ...

  5. django基础篇01-环境的搭建和项目的创建

    本文参考自银角大王的博客 基本配置 常用命令: django-admin startproject xxx(项目名) python3 manage.py startapp xxx(app名) pyth ...

  6. Django基础篇(1)--介绍

    这里是清安,欢迎查阅本篇文章.我的微信号是qing_an_an,欢迎来扰! 目录 安装 命令 创建项目 创建应用 运行项目 数据库 账号密码 重置密码

  7. Django基础-Web框架-URL路由

    Django基础-Web框架-URL路由 一.Django基础–Web框架 MVC和MTV框架 MVC 把Web应用分为模型(M).视图(V).控制器(C)三层,他们之间以一种插件式的,松耦合的方式联 ...

  8. Django基础---Web框架、URL路由、视图函数、模板系统

    文章目录 Django基础 Django基础---Web框架 MVC和MTV框架 MVC MTV Django下载与安装 基于Django实现一个简单的示例 get请求获取数据 post请求获取数据 ...

  9. 学一点django基础

    学一点Django基础 目录 文章目录 目录 一.Django框架的介绍 Django的安装 Django框架开发 创建项目的指令 Django项目的目录结构 URL 介绍 视图函数(view) Dj ...

最新文章

  1. python利用决策树进行特征选择
  2. 利用 Rize 来进行 UI 测试或 E2E 测试
  3. 编写你的第一个 Django 应用,第 6 部分
  4. 使用腾讯开发平台获取QQ用户数据资料
  5. [python进阶]11接口:从协议到抽象基类
  6. 删除链表中指定节点,要求时间复杂度为O(1)
  7. 计算机科学家论文引用排名:LeCun终于晋身三巨头
  8. 详解Linux操作系统的系统备份与恢复
  9. 解决“npm不是内部或外部命令“
  10. 天涯明月刀java_天涯明月刀61副本 天涯明月刀副本详情介绍
  11. pandas excel 数据随机打乱
  12. 原神服务器不稳定,原神天空岛和世界树服务器哪个好
  13. Unite 2018 | 《崩坏3》:在Unity中实现高品质的卡通渲染
  14. 路由器做二级路由方法
  15. 计蒜客 A1596.蒜头君王国 概率计算(dp)
  16. ROX-Filer 2.6
  17. HTML 中的各种标记简介
  18. css中一个一个字显示效果
  19. git【--ours】及【--theirs】优雅的解决冲突
  20. 接近与环境光强度数字传感器-APDS9930

热门文章

  1. 程序员微信头像_这才是程序员的内心独白
  2. C# 子类实例化基类 基类使用不了子类的方法_C#学习笔记09--构造方法/析构方法/继承/多态/封装...
  3. AI公开课:19.05.22 Aya Soffer—IBM AI Tech VP《Advanced, scalable, and trusted AI 》课堂笔记以及个人感悟
  4. Paper之Algorithms:国内外Algorithms高质量论文、CUMCM分类推荐(建议收藏,持续更新)
  5. Keras之Mask R-CNN:《极限挑战》第四季第2期助力高考—使用Mask R-CNN代替Photoshop抠图、颜色填充框出目标检测/图像分割/语义分割
  6. TF之LiR:基于tensorflow实现手写数字图片识别准确率
  7. B. 熟练剖分(tree) (概率DP)
  8. Nginx集群session管理的两种方式
  9. python-day2~3
  10. 【数据库】分库分表策略