日分类商品访问量月增用户统计
接口分析
请求方式:GET /meiduo_admin/statistical/month_increment/
请求参数:通过请求头传递jwt token数据。
返回数据:JSON
[
{
"count": "用户量",
"date": "日期"
},
{
"count": "用户量",
"date": "日期"
},
...
]
返回值 | 类型 | 是否必须 | 说明 |
---|---|---|---|
count | int | 是 | 新增用户量 |
date | date | 是 | 日期 |
后端实现
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.permissions import IsAdminUser
from datetime import date
from users.models import User
class UserMonthCountView(APIView):
# 指定管理员权限
permission_classes = [IsAdminUser]
def get(self, request):
# 获取当前日期
now_date = date.today()
# 获取一个月前日期
start_date = now_date - timedelta(29)
# 创建空列表保存每天的用户量
date_list = []
for i in range(30):
# 循环遍历获取当天日期
index_date = start_date + timedelta(days=i)
# 指定下一天日期
cur_date = start_date + timedelta(days=i + 1)
# 查询条件是大于当前日期index_date,小于明天日期的用户cur_date,得到当天用户量
count = User.objects.filter(date_joined__gte=index_date, date_joined__lt=cur_date).count()
date_list.append({
'count': count,
'date': index_date
})
return Response(date_list)