django 中间件

也就是说,每一个请求都是先通过中间件中的 process_request 函数,这个函数返回 None 或者 HttpResponse 对象,如果返回前者,继续处理其它中间件,如果返回一个 HttpResponse,就处理中止,返回到网页上。

 
1
2
3
4
MIDDLEWARE_CLASSES  =  (
     'zqxt.middleware.BlockedIpMiddleware' ,
     ...其它的中间件
)

Django 会从 MIDDLEWARE_CLASSES 中按照从上到下的顺序一个个执行中间件中的 process_request 函数,而其中 process_response 函数则是最前面的最后执行。


中间件
 
#项目 zqxt 文件名 zqxt/middleware.py
 
class  BlockedIpMiddleware( object ):
 
中间件继承object
class  BlockedIpMiddleware( object ):
     def  process_request( self , request):
         if  request.META[ 'REMOTE_ADDR' in  getattr (settings,  "BLOCKED_IPS" , []):
             return  http.HttpResponseForbidden( '<h1>Forbidden</h1>' )
在def process_reqeuest当中定义,注意传入参数reqeust
 
 
 
 
 





转载于:https://www.cnblogs.com/wuqingzangyue/p/5749431.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值