Django框架

在了解Django之前,首先要了解这样一个概念: web框架

在现实生活中,我们通过手机、电脑等设备获取网络上的讯息,对于这个流程,大致都有一个模糊的概念,就是数据是从各大公司的数据库中获取,然后通过web系统的各种web服务,通过网络传输到手机、电脑上。而这个流程,是需要对web框架进行编码,然后通过一系列的协议转换等等流程,将数据传输到网络中。

web框架是用于进行Web开发的一套软件架构,提供了一套开发和部署网站的方式,软件开发人员通过学习它的规则,对业务逻辑进行编程以实现数据的交互。

一般web框架的架构是这样的:

一、Django 简介

Django 是使用 Python 语言开发的一款免费而且开源的 Web 应用框架。由于 Python 语言的跨平台性,所以 Django 同样支持 Windows、Linux 和 Mac 系统。

在 Python 语言炽手可热的当下,Django 也迅速的崛起,在 Web 开发领域占有一席之地。基于 Python 开发的框架除了 Django 外,还有可以实现快速建站 Flask 和支持高并发处理的 Tornado ,而 Django 是最有代表性的一位,它们三者是当前最流行的 Python Web 框架。

Django发布于2005年,是当前Python世界里最负盛名且成熟的网络框架。最初用来制作在线新闻的Web站点。

官方网站:https://www.djangoproject.com/

Django文档网站:https://docs.djangoproject.com/zh-hans

Django框架的特点

相对于 Python 的其他 Web 框架,Django 的功能是最完整的,Django 定义了服务发布、路由映射、模板编程、数据处理的一整套功能。这也意味着 Django 模块之间紧密耦合。

Django 的主要特点如下:

  • 完善的文档:经过 10 余年的发展和完善,Django 官方提供了完善的在线文档,为开发者解决问题提供支持。
  • 集成 ORM 组件:Django 的 Model 层自带数据库 ORM 组件,为操作不同类型的数据库提供了统一的方式。
  • URL 映射技术:Django 使用正则表达式管理URL映射,因此给开发者带来了极高的灵活性。
  • 后台管理系统:开发者只需通过简单的几行配置和代码就可以实现完整的后台数据管理Web控制台。
  • 错误信息提示:在开发调试过程中如果出现运行异常,Django 可以提供非常完整的错误信息帮助开发者定位问题。

二、MVC和MTV

Django是一个用Python编写的开放源代码的Web应用框架(源代码是开源的,遵守BSD版权)。采用了MVC的框架模式,也有很多人把它称为MVT(MTV)模式。

MVC设计模式

MVC 设计模式是一种软件设计典范,使业务逻辑,界面,数据分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面与用户交互的同时,不需要重新编写业务逻辑。

MVC被独特的发展起来用于映射传统的输入,处理和输出功能在一个逻辑的图形化界面结构中。

MVC 是 Model-View-Controller 的缩写

  • Model :用于封装与应用程序的业务逻辑相关的数据及对数据的处理方法,是Web应用程序中用于处理应用程序的数据逻辑部分,Model通常只提供功能性的接口,通过这些接口可以获取Model的所有功能。

  • View : 负责数据的显示和呈现,View是对用户的直接输出。

  • Controller : 负责从用户端收集用户的输入,可以看成提供View的反向功能,主要处理用户交互。

MVC 设计模式的请求与响应过程描述如下:

  • 用户通过浏览器向服务器发起 request 请求,Controller 层接受请求后,同时向 Model 层和 View 发送指令;
  • Mole 层根据指令与数据库交互并选择相应业务数据,然后将数据发送给 Controller 层;
  • View 层接收到 Controller 的指令后,加载用户请求的页面,并将此页面发送给 Controller 层;
  • Controller 层接收到 Model 层和 View 层的数据后,将它们组织成响应格式发送给浏览器,浏览器通过解析后把页面展示出来。
    请添加图片描述

解耦是MVC设计模式的核心思想。
MVC 的 3 层之间紧密相连,但又相互独立,每一层的修改都不会影响其它层,每一层都提供了各自独立的接口供其它层调用。这种设计模式降低了代码之间的耦合性(即关联性),增加了模块的可重用性,更容易重构代码,最大程度实现了代码的重用。

MTV设计模式

MTV 设计模式本质上与MVC没什么差别,也是各组件之间为了保持松耦合关系,只是定义上有些许不同。

Django 的MTV设计模式借鉴了经典的 MVC 模式,它也将交互的过程分为了 3 个层次

MTV 是 Model-View-Template 的缩写

  • Model :数据存储层。负责业务对象与数据库(ORM)的对象(类对应表)

  • View :业务逻辑层。负责处理具体的业务逻辑,并在适当的时候调用Model和Template

  • Template : 模板层(也叫表现层)。具体来处理页面的显示,负责把页面展示给用户。 Template 英文的含义就是“模板”的意思,可以简单理解成,它是一个 HTML 页面 ,HTML 页面的渲染在视图层完成

MTV 设计模式的请求与响应过程描述:

  • 用户通过浏览器对服务器发起 request 请求,服务器接收请求后,通过 View 的业务逻辑层进行分析,同时向 Model 层和 Template 层发送指令;
  • Mole 层与数据库进行交互,将数据返回给 View 层;
  • Template 层接收到指令后,调用相应的模板,并返回给 View 层;
  • View 层接收到模板与数据后,首先对模板进行渲染(即将相应的数据赋值给模板),然后组织成响应格式返回给浏览器,浏览器进行解析后并最终呈现给用户。

注意 :Django中还有一个url分发器(也可以叫做路由),主要用来将一个个URL页面的请求分发给不同的View进行处理,View再调用相应的Model和Template。

通过以上两种设计模式的比较, 可以得出结论: MTV 是 MVC 的一种细化,将原来 MVC 中的 V 层拿出来进行离,视图的显示与如何显示交给 Template 层,而 View 层更专注于实现业务逻辑。其实在 Django 是有 Controller 层的,只不过它由框架本身来实现,所以我们不用关心它。Django 更关注于M、T 和 V。

MVC是众所周知的模式,即:将应用程序分解成三个组成部分:model(模型),view(视图),和controller(控制器)。其中:M——管理应用程序的状态(通常存储到数据库中),并约束改变状态的行为(或者叫做“业务规则”)。C——接受外部用户的操作,根据操作访问模型获取数据,并调用“视图”显示这些数据。控制器是将“模型”和“视图”隔离,并成为二者之间的联系纽带。V——负责把数据格式化后呈现给用户。 Django 也是一个MVC框架。但是在 Django 中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为M Django框架 简介 MVC框架和MTV框架(了解即可) MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),具有耦合性低、重用性高、生命周期成本低等优点。 想要更详细的了解MVC模式? >> 点我 Django框架 的设计模式借鉴了... 模型(Model):代表应用程序的数据结构,通常映射到数据库的一张表。模板(Template):表示应用的用户界面部分,通常是HTML,其中包含展示逻辑。视图(View):业务逻辑的核心,它接收Web请求并返回响应。下面我们将详细讨论每一部分,并给出示例来说明其在 Django 项目中的使用。 Django 是一个开放源代码的Web应用框架,由 Python 写成。采用了MTV的框架模式,即模型M,视图V和模版T。用于创建模型的对象关系映射;为最终用户设计较好的管理界面;URL 设计;设计者友好的模板语言;缓存系统。 Django 已经成为web开发者的首选框架,是一个遵循 MVC 设计模式的框架。MVC是Model、View、Controller三个单词的简写,分别代表模型、视图、控制器。 Django 其实也是一个MTV 的设计模式。 定义:在 Django框架 中,模板是可以帮助开发者快速生成呈现给用户页面的工具 模板的设计方式实现了我们MVT中VT的解耦,VT有着N:M的关系,一个V可以调用任意T,一个T可以供任意V使用 模板处理分为两个过程 模板主要有两个部分 ① HTML静态代码 ② 动态插入的代码段(挖坑,填坑) 模板中的动态代码段除了做基本的静态填充,还可以实现一些基本的运算,转换和逻辑。 模板中的变量: 视图传递给模板的数据,遵守标识符规则 语法{{ var }} 模板中的标签 语法 {% tag %} 加载外部传入的变量 在输出中创建文本 控制循环或逻辑 MVC就是把Web应用分为模型(M),控制器©和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接受用户的输入调用模型和视图完成用户的请求。 Django 的MTV模式本质上和MVC是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同, Django 的MTV分别是值:除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Templa Django框架 Python 的常用web框架,遵循 MVC 设计模式的框架,采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手 Django Reinhardt来命名的。2019年12月2日, Django 3. 0发布。ORM:用于创建模型的对象关系映射;为最终用户设计较好的管理界面;URL 设计; Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。使用 Django ,只要很少的代码, Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。