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配置项。

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

猜你喜欢

转载自www.cnblogs.com/andy0816/p/12191281.html