月增用户统计
【统计当月(一个月范围内)每天注册的用户数量】
接口分析
请求方式:GET /meiduo_admin/statistical/month_increment/
# 月增用户统计量
url(r'^statistical/month_increment/$', statistical.UserMonthCountView.as_view()),
请求参数: 通过请求头传递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, timedelta
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)
postman测试: