本文共 1251 字,大约阅读时间需要 4 分钟。
背景: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' }, ... }
转载地址:http://eymmi.baihongyu.com/