首页 > 其他分享 >Django的MVC模型和MTV

Django的MVC模型和MTV

时间:2023-07-26 18:35:09浏览次数:35  
标签:模型 MTV 视图 Django MVC Model

基本介绍

Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。

使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。

MVC 优势:

  • 低耦合
  • 开发快捷
  • 部署方便
  • 可重用性高
  • 维护成本低
  • ...

Python 加 Django 是快速开发、设计、部署网站的最佳组合。

特点

  • 强大的数据库功能
  • 自带强大的后台功能
  • 优雅的网址

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.如果涉及到数据调用,那么视图函数调用模型,模型去数据库查找数据,然后逐级返回。

视图函数把返回的数据填充到模板中空格,最后返回网页给用户。

参考地址:

[1]: https://www.cnblogs.com/liuhui0308/p/12189658.html

		</div>

标签:模型,MTV,视图,Django,MVC,Model
From: https://www.cnblogs.com/clark1990/p/17583271.html

相关文章

  • zTree -- jQuery 树插件的使用包括添加、编辑(MVC)
    zTree--jQuery树插件网址:https://www.treejs.cn/v3/main.php#_zTreeInfo自行下载所需要的文件我自己写的一些具体示例:使用的.netCore6后端使用的ORM框架SqlSugar的中的ToTreeAsync方法返回的需要的数据格式,如果没用SqlSugar可以自己写递归来完成publicasyncTask<Resul......
  • django 初识
    一、手撸web框架推导框架的演变过程,思路是重点1、写一个服务端importsocketserver=socket.socket()server.bind(('127.0.0.1',9000))server.listen(3)whileTrue:conn,addr=server.accept()data=conn.recv(1024)print(data.decode('utf8'))......
  • ubuntu下安装django
    1.去页面http://www.djangoproject.com/download/下载,按照步骤安装 2.安装apachemodpythonsudoapt-getinstalllibapache2-mod-python 这是在/etc/apache2/mods-enabled文件夹下会有python.load,自动载入mod_python模块 3.进入到apache的/var/www/运行django-admin.pysta......
  • spring启动流程 (6完结) springmvc启动流程
    SpringMVC的启动入口在SpringServletContainerInitializer类,它是ServletContainerInitializer实现类(Servlet3.0新特性)。在实现方法中使用WebApplicationInitializer创建ApplicationContext、创建注册DispatcherServlet、初始化ApplicationContext等。SpringMVC已经将大部分的启......
  • Django的render函数输出到html页面出现乱码
    有三种方法:在页面中设置编码即可解决<metacharset="utf-8">在视图函数中设置响应对象的字符编码fromdjango.httpimportHttpResponsedefmy_view(request):response=HttpResponse('hello')response['Content-Type']='text/plain;......
  • Asp.Net MVC 使用Log4Net
    Asp.NetMVC使用Log4Net在ASP.NETMVC中使用Log4net需要进行一些配置和代码集成。下面是在ASP.NETMVC中使用Log4net的步骤:1.安装Log4netNuGet包打开NuGet包管理器控制台,并运行以下命令来安装Log4net:Install-Packagelog4net2.添加Log4net配置文件在你......
  • SpringMVC
    SpringMVC简介SpringMVC是一种基于Java实现MVC模型的轻量级Web框架。优点:使用简单,开发便捷(相比于Servlet)灵活性强入门案例【第一步】创建web工程(Maven结构);在pom.xml设置tomcat服务器,加载web工程(tomcat插件)1<build>2<plugins>3<plugin>4......
  • 纯手撸 Django web框架批量删除redis的key
    纯手撸Djangoweb框架批量删除redis的key环境环境参照上一章节博客部署环境,在此基础上进行功能加强【批量删除指定前缀的key】,然后再CI里面掉这个接口地址即可清理redis缓存的key,更加高效的运维工作修改视图##mysite/myweb1/views.py#Createyourviewshere.fromdj......
  • SpringBoot中使用测试框架MockMvc来模拟HTTP请求测试Controller接口
    场景Java中进行单元测试junit.Assert断言、Mockito模拟对象、verify验证模拟结果、Java8中lambda的peek方法使用:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/127492361上面讲了开发过程中一些测试方法。如果需要在代码中直接测试某个Controller接口,除了每次启......
  • SpringMVC
    概述SpringMVC是一种基于Java的实现MVC设计模型的请求驱动类型的轻量级Web框架,属于SpringFrameWork的后续产品,已经融合在SpringWebFlow中。SpringMVC已经成为目前最主流的MVC框架之一,并且随着Spring3.0的发布,全面超越Struts2,成为最优秀的MVC框架。它通过一套注......