python 统计每月用户注册量(总注册数)

背景:djiango项目,models.py中add_at的类型定义为DateTimeField格式;

class userinfo(models.Model):
    add_at = models.DateTimeField(  )
    .......

view.py中,代码关键是设置好每月的起止时间,再按区间过滤和计数。

def get_reguser():
    regtotal = 0
    chart_data = []
    start_day = datetime.datetime(2013, 3, 1, 0, 0, 0, 0)
    now = datetime.datetime.now()
    cur_day = start_day
    while cur_day < now:
        month = cur_day.month + 1
        year = cur_day.year
        if month > 12:
            month = 1
            year = year + 1
        end_day = datetime.datetime(year, month, 1)
        #
        regcount = userinfo.objects.filter(add_at__gt=cur_day, add_at__lt=end_day).count() #过滤并计数
        citem = {}
        citem['name'] = cur_day.strftime('%Y-%m')
        citem['val'] = regcount
        regtotal = regtotal + regcount
        chart_data.append(citem)
        #
        cur_day = end_day

    return regtotal,chart_data

贴心小棉袄最后再附上前端显示代码:

# 套用echart柱状图模板的数据格式
var data_x =  [{% for item in chart_data %}'{{item.name|safe}}',{%endfor%}];
var data_y =  [{% for item in chart_data %}'{{item.val|safe}}',{%endfor%}];

option = {
            title : {
                text: '**注册用户统计',
                subtext: '注册总人数{{reg_total}}',
                left: 'center'
            },
        ...
        }
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值