记 django 单独实现统计的一种方式(即本地缓存的使用)
添加middleWare.py
import uuid
USER_KEY = 'uid'
TEN_YEARS = 60 * 60 * 24 * 365 * 10
UserIDMiddleWare:
def __init__(self,get_response):
self.get_response = get_response
#把一个类变成一个可调用对象
def __call__(self,request):
uid = self.generate_uid(request)
request.uid = uid
response = self.get_response(request)
response.set_cookie(USER_KEY,uid,max_age=TEN_YEARS,httponly=True)
return response
def generate_uid(self,request):
try:
uid = request.COOKIES[USER_KEY]
except KeyError :
uid = uuid.uuid4().hex
return uid
别忘记在setting里面添加
在views.py 使用
from django.core.cache import cache
from datetime import date
def detail(request):
uid = request.uid
uv_key = 'uv:%s:%s:%s' %(uid,str(date.today()),request.path)
if not cache.get(uv_key):
increase_uv = True
cache.set(uv_key,1,24*60*60) #一天有效
if increase_uv:
#添加你需要的操作