Exemplo n.º 1
0
def bookmark_set_public(request):
    start_time = request.GET.get('start_time', c.MIN_TIME)
    end_time = request.GET.get('end_time', c.MAX_TIME)
    data_grain = request.GET.get('data_grain', 'day')
    data_grain = data_grain if data_grain else 'day'
    
    if start_time == 'NaN-aN-aN aN:aN:aN': 
        start_time = c.MIN_TIME
    if end_time == 'NaN-aN-aN aN:aN:aN': 
        end_time = c.MAX_TIME

    data = {'list':[]}
    raw_data = SomeTotal.objects.filter(name='set-public', time__gte=start_time, time__lte=end_time).values('time', 'count')
    
    if data_grain == 'hour':
        for d in raw_data:
            data['list'].append({'time':d['time'].strftime('%m-%d %H:%M:%S'), 'count':d['count']})
    elif data_grain == 'day':
        delta = datetime.timedelta(days=1)
        # 每天取一个23点的数据
        data['list'] = get_data_interval(raw_data, delta)
    elif data_grain == 'week':
        # 每隔7天取一个23点的数据
        delta = datetime.timedelta(days=7)
        data['list'] = get_data_interval(raw_data, delta)
    elif data_grain == 'month':
        # 每隔4周天取一个23点的数据
        delta = datetime.timedelta(weeks=4)
        data['list'] = get_data_interval(raw_data, delta)

    # 计算data的增长率
    add_inc_for_data(data)
    
    response = HttpResponse(anyjson.dumps(data))
    # 缓存一天, 也只能缓存一天
    # 因为start_time和end_time可能是NA, 那么一天之后, 这个NA的数据实际上是会发生变化的.
    now = datetime.datetime.now()
    expire = now + datetime.timedelta(days=1)
    response['Expires'] = expire.strftime('%a, %d %b %Y 01:00:00 %Z')
    return response
Exemplo n.º 2
0
def bookmark_total(request):
    start_time = request.GET.get("start_time", c.MIN_TIME)
    end_time = request.GET.get("end_time", c.MAX_TIME)
    data_grain = request.GET.get("data_grain", "day")
    data_grain = data_grain if data_grain else "day"

    if start_time == "NaN-aN-aN aN:aN:aN":
        start_time = c.MIN_TIME
    if end_time == "NaN-aN-aN aN:aN:aN":
        end_time = c.MAX_TIME

    data = {"list": []}
    raw_data = SomeTotal.objects.filter(name="bookmark", time__gte=start_time, time__lte=end_time).values(
        "time", "count"
    )
    if data_grain == "hour":
        for d in raw_data:
            data["list"].append({"time": d["time"].strftime("%m-%d %H:%M:%S"), "count": d["count"]})
    elif data_grain == "day":
        delta = datetime.timedelta(days=1)
        # 每天取一个23点的数据
        data["list"] = get_data_interval(raw_data, delta)
    elif data_grain == "week":
        # 每隔7天取一个23点的数据
        delta = datetime.timedelta(days=7)
        data["list"] = get_data_interval(raw_data, delta)
    elif data_grain == "month":
        # 每隔4周天取一个23点的数据
        delta = datetime.timedelta(weeks=4)
        data["list"] = get_data_interval(raw_data, delta)

    # 计算data的增长率
    add_inc_for_data(data)

    response = HttpResponse(anyjson.dumps(data))
    # 缓存一天
    now = datetime.datetime.now()
    expire = now + datetime.timedelta(days=1)
    response["Expires"] = expire.strftime("%a, %d %b %Y 01:00:00 %Z")
    return response
Exemplo n.º 3
0
def test(start_time, end_time, data_grain="day"):
    if start_time == "NaN-aN-aN aN:aN:aN":
        start_time = c.MIN_TIME
    if end_time == "NaN-aN-aN aN:aN:aN":
        end_time = c.MAX_TIME
    data = {"list": []}
    raw_data = SomeTotal.objects.filter(name="user", time__gte=start_time, time__lte=end_time).values("time", "count")

    if data_grain == "hour":
        for d in raw_data:
            data["list"].append({"time": d["time"].strftime("%m-%d %H:%M:%S"), "count": d["count"]})
    elif data_grain == "day":
        delta = datetime.timedelta(days=1)
        # 每天取一个23点的数据
        data["list"] = get_data_interval(raw_data, delta)
    elif data_grain == "week":
        week_start = get_week_num(raw_data[0]["time"])

        first_day = datetime.date.today().replace(month=1, day=1)
        day = first_day + datetime.timedelta(weeks=week_start)

        for d in raw_data:
            if (
                d["time"].hour == 23
                and d["time"].year == day["time"].year
                and d["time"].month == day["time"].month
                and d["time"].day == day["time"].day
            ):
                data["list"].append({"time": d["time"].strftime("%Y-%m-%d"), "count": d["count"]})
                day += delta

    #        # 每隔7天取一个23点的数据
    #        delta = datetime.timedelta(days=7)
    #        data['list'] = get_data_interval(raw_data, delta)
    elif data_grain == "month":
        # 每隔4周天取一个23点的数据
        delta = datetime.timedelta(weeks=4)
        data["list"] = get_data_interval(raw_data, delta)
Exemplo n.º 4
0
def test(start_time, end_time, data_grain='day'):
    if start_time == 'NaN-aN-aN aN:aN:aN': 
        start_time = c.MIN_TIME
    if end_time == 'NaN-aN-aN aN:aN:aN': 
        end_time = c.MAX_TIME
    data = {'list':[]}
    raw_data = SomeTotal.objects.filter(name='user', time__gte=start_time, time__lte=end_time).values('time', 'count')
    
    if data_grain == 'hour':
        for d in raw_data:
            data['list'].append({'time':d['time'].strftime('%m-%d %H:%M:%S'), 'count':d['count']})
    elif data_grain == 'day':
        delta = datetime.timedelta(days=1)
        # 每天取一个23点的数据
        data['list'] = get_data_interval(raw_data, delta)
    elif data_grain == 'week':
        week_start = get_week_num(raw_data[0]['time'])
        
        first_day = datetime.date.today().replace(month=1, day=1)
        day = first_day + datetime.timedelta(weeks=week_start)
        
        for d in raw_data:
            if d['time'].hour == 23 and \
               d['time'].year == day['time'].year and \
               d['time'].month == day['time'].month and \
               d['time'].day == day['time'].day:
                data['list'].append({'time':d['time'].strftime('%Y-%m-%d'), 'count':d['count']})
                day += delta
        
#        # 每隔7天取一个23点的数据
#        delta = datetime.timedelta(days=7)
#        data['list'] = get_data_interval(raw_data, delta)
    elif data_grain == 'month':
        # 每隔4周天取一个23点的数据
        delta = datetime.timedelta(weeks=4)
        data['list'] = get_data_interval(raw_data, delta)