需求:
记录用户访问数,当用户第一次访问时,访问次数加1(判断如果从redis库没有获取到客户端ip,将用户的访问数加1,将客户端ip地址存入redis库并设置过期时间,否则不加)
from django.db.models import Q,F
import redis
r = redis.Redis('localhost')
class GetUser(APIView):
def get(self,request):
if 'HTTP_X_FORWARDED_FOR' in request.META:
ip = request.META.get('HTTP_X_FORWARDED_FOR')
else:
ip = request.META.get('REMOTE_ADDR')
uid = request.GET.get('uid', '')
if r.get(ip) == None:
User.objects.filter(Q(id=int(uid))).update(num=F('num') + 1)
r.set(ip, ip)
r.expire(ip, 60)
else:
pass
user = User.objects.filter(Q(id=int(uid))).first()
user_ser = UserSer(user)
return Response(user_ser.data)