Django 中间件
2019-03-30 14:21
127 查看
import random from django.http import HttpResponse from django.shortcuts import render from django.utils.deprecation import MiddlewareMixin from Django09 import settings class AppMiddle(MiddlewareMixin): def process_request(self, request): # ip print(request.META['REMOTE_ADDR']) ip = request.META['REMOTE_ADDR'] # 是否存在 if ip in getattr(settings, 'BLOCKED_IPS', []): return HttpResponse('<h1> 服务器正在抢修中,请稍后.... </h1>') class TestMiddle(MiddlewareMixin): def process_request(self, request): ip = request.META['REMOTE_ADDR'] msg = '' if ip == '10.20.152.90': msg = '一等奖-MacBookPro' elif ip == '127.0.0.1': msg = '二等奖-Ipad' elif ip == '10.20.152.76': msg = '三等奖-iphone x' else: temp = random.randrange(1,3) if temp == 1: msg = '特等奖' elif temp == 2: msg = '鼓励奖' else: msg = '继续努力!' return render(request, 'randomView.html', context={'msg':msg})
添加到配置中
settings.py
MIDDLEWARE = [ 'MyMiddleWare.app.appmiddleware.AppMiddle', # 黑名单 'MyMiddleWare.app.appmiddleware.TestMiddle', ] ## 黑名单 BLOCKED_IPS = [ '10.20.152.25', '10.20.152.76', '10.20.152.90', '10.20.152.53' ]
相关文章推荐
- Django中间件
- 【Django】Django的上下文处理器(Context Processor)和中间件(Middleware)(十一)
- 详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
- 请求处理机制其二:Django中间件的解析
- django -- cbv,fbv,中间件
- Django的中间件
- [Django学习]中间件
- Django进阶(路由系统、中间件、缓存、Cookie和Session、Ajax发送数据
- Django中间件
- Django中自定义中间件模块--自动搜索stackoveflow答案
- Django中间件
- django框架之中间件
- 详解Python的Django框架中的中间件
- Django - 中间件
- django 中间件记录所有请求及请求执行时间
- Django中间件工作流程及写法实例代码
- Django 中间件的研究
- Django(六)Session、CSRF、中间件
- 细说Django的中间件
- Python 实现抽象类的两种方式+邮件提醒+动态导入模块+反射(参考Django中间件源码)