中间件
中间件函数是django框架给我们预留的函数接口,让我们可以干预请求和应答的过程。
1、获取浏览器端的ip地址
request.META[‘REMOTE_ADDR’]
2、使用中间件禁用一些ip地址使用所有网页
1)在应用下新建middleware.py文件
from django.http import HttpResponse
from django.utils.deprecation import MiddlewareMixin
class BlockedIPSMiddleware(MiddlewareMixin):
EXCLUDE_IPS = ['192.168.31.199']
def process_view(self, request, view_func, *view_args, **view_kwargs):
'''视图函数调用之前会调用'''
user_ip = request.META['REMOTE_ADDR']
if user_ip in BlockedIPSMiddleware.EXCLUDE_IPS:
return HttpResponse('<h1>Forbidden</h1>')
2)定义中间件类
在类中定义中间件预留函数。
_ _ init _ _:服务器响应第一个请求的时候调用。
process_request(self,request):是在产生request对象,进行url匹配之前调用。
process_view(self, request, view_func, view_args, view_kwargs):是url匹配之后,调用视图函数之前。
process_response(self, request, response):视图函数调用之后,内容返回给浏览器之前。
process_exception(self, request, exception):视图函数出现异常,会调用这个函数,调用的顺序跟注册的顺序是相反的。
3)注册中间件类
进入settings.py,添加中间件类然后重启
'booktest.middleware.BlockedIPSMiddleware'
4)中间件执行的流程