我们经常遇到在电商平台抢手机,会出现一机难求的局面。我们可以通过中间件来模拟这种情况,并引入用户等级来让优质用户更同意抢到新品手机。
1、先构建正常抢手机功能
urls.py
from django.conf.urls import url
from hellpaop import views
urlpatterns = [
url(r'^buyPhone/',views.buyPhone)
]
views.py
import random
from django.http import HttpResponse
from django.shortcuts import render
# Create your views here.
def buyPhone(request):
r_num = random.randrange(100)
if r_num >= 49:
return HttpResponse('恭喜您,获得XXX手机 256G版本')
else:
return HttpResponse('抱歉,本平台已售完')
普通用户有50%的几率抢不到手机
2、自定义中间件
- 在项目中创建
middleware
文件夹 - 在文件夹中创建py文件并编写如下
class LearnAOP(MiddlewareMixin):
def process_request(self,request):
ip = request.META.get('REMOTE_ADDR')
if request.path == '/helloAop/buyPhone/':
if ip == '127.0.0.1':
return HttpResponse('钻石用户,恭喜您获得XXX手机 256G版本')
假设以ip为标识,这里让本机ip作为钻石用户。
- 在settings中进行注册
MIDDLEWARE = [
'middleware.myMiddleware.LearnAOP',
]
3、访问手机官网
100%可以买到手机!