django简介

django是什么?

它是一个开放源代码的Web应用框架,由python写成。
既然是一个应用框架,那么是一个什么样的框架呢?
django的框架MTV,先说一下另一种框架模式MVC

MVC

概述:是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改变和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入处理和输出功能在一个逻辑的图形化用户界面的结构中。
简单来说
MVC全名(Model View Controller),是软件工程中的一种软件架构模式,把软件系统分为单个基本部分,模型(Model)、视图(View)、控制器(Controller),具有耦合性低,重用性高,生命周期成本低等优点。
核心思想:解耦。
Model(模型):是应用程序中用于处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存储数据。
View(视图):是应用程序中处理数据显示的部分,通常视图是依据模型数据创建的。
Controller(控制器):是应用程序处理用户交互的部分,通常控制器负责从视图中读取数据,控制用户输入,并向模型发送数据。

MTV

概述:本质上和MVC没有差别,django框架的不同之处在于它拆分的三部分为:Model(模型)、Template(模板)、View(视图)。也就是MTV框架。

Model:负责业务对象与数据库的对象(ORM)。
Template:负责如何把页面展示给用户。
View:负责业务逻辑,并在适当的时候调用Model和Template。
注意:
django还有一个url分发器,作用是将一个个url的页面请求分发给不同的View处理,View再调用相应的Model和Template。

django的请求流程图:
django简介
再来一张:
django简介
两张大同小异,这就是django的请求周期。
django的请求生命周期是指当用户在浏览器上输入url到用户看到网页的这个时间段内,django后台所发生的事情。

  1. 当用户在浏览器中输入url时, 浏览器会生成请求头和请求体发给服务器,请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post,体现在url中。
  2. url经过django中的wsgi,在经过django的中间件,最后url到路由映射表,在路由中一条一条进行匹配,成功就执行对应的视图函数,后面的路由不再匹配。
  3. 视图函数根据客户端的请求查询相应的数据,返回给django,然后django把客户端想要的数据作为一个字符串返回给客户端。
  4. 客户端浏览器接受到返回的数据,经过渲染后显示给用户。

ORM:
ORM是“对象-关系-映射”的简称,主要任务是:

  • 根据对象的类型生成表结构
  • 将对象,列表的操作转换为sql语句
  • 将sql查询到的结构转换为对象,列表

MVC/MTCV框架中的一个重要部分就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖与特定的数据库,通过简单的配置就可以更换数据库,极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动。