中间件

python中间件

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

中间件不用继承自任何类(可以继承 object ),下面一个中间件大概的样子:

1
2
3
4
5
6
class CommonMiddleware(object):
    def process_request(self, request):
        return None
 
    def process_response(self, request, response):
        return response
我觉得就是

这张图当中当网页的request请求进行处理的时候,设计一个函数对request进行处理叫做中间件
 
 
现在settings里面的MIDDLEWARE_CLASSES 配置路径,app名,加模块名,加类名'todolist.middleware.Version',
然后再在定义的模块里面进行定义
classVersion(object):
def process_request(self,request): 请求处理过程
agent = request.META['HTTP_USER_AGENT'] 获取浏览器版本型号
result = re.findall('MSIE [5678]', agent) 匹配字符串
if len(result)>0:
renturn  render(request, 'warning.html') 可以用render方法渲染到另一个页面
 
还可以写成跳转的形式,跳转到warning.html,这里需要判断,需要些url和views
 





原文地址:https://www.cnblogs.com/wuqingzangyue/p/5749560.html