要件:
ユーザーのレコード番号がアクセスしたときにユーザーが最初の訪問、視察プラス1(IP Redisのライブラリは、アクセス数を加えた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)