django框架基础-django的中间件-长期维护-20200113

Posted andy0816

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django框架基础-django的中间件-长期维护-20200113相关的知识,希望对你有一定的参考价值。

##################    中间件      #######################

 

##################    中间件      #######################

 

##################    中间件      #######################

 

##################    中间件      #######################

 

##################    中间件      #######################

 

 

 

python-django框架-中间件

 

 

 

1,中间件

 

先说几个需求,

 

  1,url的白名单, url=[ "XX"]  

 

    这个里面是一个用户可以访问的url,这就是一个权限的概念了,  

 

  2,登陆之后才能访问某些url,  之前使用的是装饰器,一个网站可能有一两千的url,这样加装饰器就不太好,所以使用中间件是非常不错的,

 

什么是中间件?

 

是一个轻量,低级别的插件系统,可以在全局范围内改变django的输入和输出,每一个中间件都负责做一些特定的功能

 

也就是每一个请求都会走这个中间件,

 

注意:

 

因为改变的是全局,所以要谨慎使用,使用不当会影响性能,

 

#######################################################

 

浏览器到django框架的时候,先经过一个wsgi,这个wsgi就是按照HTTP的协议的规则解析请求,

 

然后到url.py中,找对应关系,

 

然后去views.py中,找到对应的函数,这个函数需要模板,需要数据,

 

然后可能去读一个模板templates,html页面,

 

然后使用orm取数据,

 

然后返回给浏览器,也需要经过wsgi,这个还需要按照HTTP的协议,进行解析,然后输出,

 

----------

 

中间件就是经过wsgi之后就要经过中间件,这就是在全局影响django的请求和响应,

 

所以中间件多了不好,每次都经过,性能就会受到影响,

 

所以前面权限的例子,就是可以使用中间件的,这好像是一个过滤的功能一样,

 

  比如验证是否登陆,如果没有登陆就提示登陆,登陆了就可以查看,这个也可以使用中间件

 

所以全网站级别的功能,就需要使用中间件,

 

------------------------

 

这个是一个比较进阶的东西,你不知道不影响你写什么东西,

 

---------------------

 

定义:在wsgi之后,在url.py之前,在全局,操作django请求和响应的模块,

 

 

 

###############################################

 

我们一直都在使用中间件,只是没有注意到而已,打开Django项目的Settings.py文件,MIDDLEWARE配置项。

 

后面再看,这个讲的也只是使用中间件做了一个登陆的验证问题,之前都是使用装饰器来做的验证,

以上是关于django框架基础-django的中间件-长期维护-20200113的主要内容,如果未能解决你的问题,请参考以下文章

python后端面试第四部分:django框架--长期维护

django框架基础-django redis-长期维护-20191220

django框架基础-django的form表单-长期维护-20200113

django框架基础-分页-长期维护-20200115

django框架基础-ORM操作-长期维护-20191213

小猿圈python之Django和Flask比较?