Django框架介绍

Django框架介绍

一、流程介绍

 

mvc.png

MVC是众所周知的模式,全名为 Model-View-Controller。

即:将应用程序分解成三个组成部分:model(模型),view(视图),和 controller(控制 器)

  • M 全拼为 Model,主要封装对数据库层的访问,对数据库中的数据进行增、删、改、查操作。
  • V 全拼为 View,用于封装结果,生成页面展示的 HTML 内容。 
  • C 全拼为 Controller,用于接收请求,处理业务逻辑,与 Model 和 View 交互,返回结果  

Django也是一个MVC框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式(Model-View-Template):

  • M 全拼为 Model,与 MVC 中的 M 功能相同,负责和数据库交互,进行数据处理; 
  • V 全拼为 View,与 MVC 中的 C 功能相同,接收请求,进行业务处理,返回应答; 
  • T全拼为Template,与 MVC中的V功能相同,负责封装构造要返回的HTML。 

MVT 和 MVC 差异就在于黑线黑箭头标识出来的部分 :

 

mvt.png

ORM:Object Relational Mapping,对象关系模型。通过使用描述对象和数据库之间映射的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。ORM 就负责 Model层的业务。

二、 MVT 各部分功能 

(1)Django 中的 ORM 

     ORM 全称是 Object Relational Mapping(对象关系映射),它把对象与数据库中的表关联起来,对象的属性映射到表的各个字段,同时,它把对表的操作对应到对对象的操作,实现了对象到 SQL,SQL 到对象的过程转换。 

(2)用户模块与权限系统 

     提供了用户、用户组、权限等概念;维护了用户、用户组和权限之间的关联关系;包含了用户鉴权与登录等基本功能。 

(3)Admin 后台管理系统 

     对系统中定义的数据表(Model)提供了原生的后台管理支持,且支持对管理页面的个性化定制,例如,针对字段值的过滤功能、搜索功能、排序功能,数据表字段的展示顺序规则定义功能,字段归类功能等。 

(4)视图 

     Django 视图是 MTV 设计模式中的 V,它在 Django 中的体现是一个 Python函数或者是类,接收 Web 请求并返回 Web 响应。 

(5)模板系统 

     模板系统用于将页面设计的 HTML 代码和用于逻辑处理的 Python代码分离开来,即做到了数据与逻辑的分离,去除不同代码之间的耦合。 

(6)优雅的表单系统 Form 

     表单系统可以根据 Form对象的定义:自动生成 HTML 表单元素、检查表单数据的合法性、对不合法的表单数据进行回显,并提示错误、将表单数据转换为对应的 Python 数据类型。 

(7)信号机制 

     Django 对信号机制的解释是:在框架的不同位置传递特定的消息给应用程序执行预定的操作。它是一种观察者模式,或者叫做发布-订阅模式。即当系统中有 event(事件)发生,一组 senders(发送者)将 signals(信号)发送给一组receivers(接收者),receivers 再去执行预定的操作。 

(8)路由系统 

     从 MTV 的设计模式中可以看到,用户向 Web 站点发送请求(对应到一个url),首先会到达“对应的”视图,那么,这里的视图是怎么对应上的呢?这就是Django 路由系统的作用。Django 利用 URLconf 构建起 URL 模式与视图函数之间的映射关系,即利用 Django 的特定配置方式,设定好哪个 url 可以去执行哪一段 Python 代码。 

(9)中间件 

     中间件是一个插件系统,嵌入在 Django 的 Request 和 Response 之间执行,可以对输入和输出内容作出修改。中间件是业务无关的技术类组件,是用来定义处理所有请求和响应的通用处理架构。 

(10)缓存系统 

有时访问 Web 站点的某一个服务会发现执行的比较慢,这种情况发生的原因可能是背后有复杂的计算逻辑,也可能是访问数据库系统或者文件系统造成的IO 延迟等等。通常提高 Web 站点执行效率的方法是使用缓存,将经常被用户访问到的页面结果保存下来,再次访问时只需要返回缓存的结果,不会再次执行计算等类似耗时的操作。 

     Django 提供一个健壮的缓存系统,实现了不同级别的缓存粒度:可以缓存单个视图的结果输出,缓存难以生成的片段,或者是缓存整个网站。 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值