码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-01-14 13:12:15      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:打开   sgi   过滤   settings   问题   django框架   影响   注意   strong   

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

 

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

 

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

 

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

 

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

 

 

 

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

标签:打开   sgi   过滤   settings   问题   django框架   影响   注意   strong   

原文地址:https://www.cnblogs.com/andy0816/p/12191281.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!