Beispiel #1
0
 def wrapper(request):
     response = read_view(request)
     # 状态码为 200 时进行计数
     if response.status_code == 200:
         post_id = int(request.GET.get('post_id'))
         rds.zincrby('ReadRank', post_id)
     return response
Beispiel #2
0
    def wrap(request):
        response = read_view(request)

        # 页面正常则进行阅读计数
        if response.status_code < 300:
            post_id = request.GET.get('post_id')
            rds.zincrby(keys.READ_RANK_KEY, post_id)
        return response
Beispiel #3
0
def read(request):
    post_id = int(request.GET.get('post_id'))
    try:
        post = Post.objects.get(id=post_id)  # 缓存没有取到时,从数据库获取一次
        rds.zincrby(keys.READ_RANK, post.id)  # 增加阅读计数
    except Post.DoesNotExist as e:
        return redirect('/')

    return render(request, 'read.html', {'post': post, 'tags': post.tags()})
Beispiel #4
0
def read_post(request):
    post_id = int(request.GET.get('post_id'))
    key = 'Post-%s' % post_id
    post = cache.get(key)  # 先从缓存里取数据
    print('get from cache: %s' % post)
    if post is None:
        post = Post.objects.get(pk=post_id)  # 缓存里没有,直接从数据库获取数据
        print('get from db: %s' % post)
        cache.set(key, post)  # 将数据存入缓存,方便以后使用
        print('set data into cache')

    rds.zincrby('ReadCounter', post_id)  # 增加文章阅读计数

    return render(request, 'read_post.html', {'post': post})
Beispiel #5
0
        def wrap2(request):
            key = keys.PAGE_CACHE % request.get_full_path()
            response = cache.get(key)  # 先从缓存取
            print('get from cache', response)
            if response is None:
                response = view_func(request)  # 缓存里没有,直接执行 view 函数
                print('get from view', response)
                cache.set(key, response, timeout)  # 把执行结果添加到缓存
                print('set to cache')
            else:
                if view_func.__name__ == 'read':
                    post_id = int(request.GET.get('post_id'))
                    rds.zincrby(keys.READ_RANK, post_id)  # 增加阅读计数

            return response
Beispiel #6
0
def read_post(req):
    post_id = int(req.GET.get('post_id'))

    key = 'Post-%s' % post_id
    post = cache.get(key)
    print('从缓存里获取:', post)

    if post is None:
        #从数据库取出数据,并且添加到缓存里
        post = Post.objects.get(pk=post_id)
        cache.set(key, post)
        print('从数据库里获取', post)

    # 增加阅读计数
    rds.zincrby('ReadCounter', post_id)
    return render(req, "read_post.html", {'post': post})
Beispiel #7
0
 def wrapper(request):
     response = read_view(request)
     if response.status_code == 200:  # 检查状态码
         post_id = request.GET.get('post_id')
         rds.zincrby('ReadRank', post_id, 1)  # 文章阅读量 +1
     return response
Beispiel #8
0
 def wrap(requests):
     post_id = int(requests.GET.get('post_id', 1))
     rds.zincrby(READ_COUNT_KEY, 1, post_id)
     return read_view(requests)
Beispiel #9
0
 def wrapper(request):
     response = view_read_func(request)
     if response.status_code == 200:
         post_id = int(request.GET.get('post_id'))
         rds.zincrby(keys.READ_COUNTER, post_id)
     return response
Beispiel #10
0
 def wrapper(request):
     post_id = int(request.GET.get('post_id'))
     # 对每篇的帖子进行加计数
     rds.zincrby('readrank', post_id)
     return func(request)
Beispiel #11
0
 def wrapper(request):
     post_id = int(request.GET.get('post_id'))
     rds.zincrby('ReadRank', post_id)  # 阅读计数
     return read_view(request)
Beispiel #12
0
 def wrapper(request):
     post_id = int(request.GET.get("post_id"))
     # 阅读计数 排行名  计数的帖子 增加数值
     rds.zincrby("ReadRank", post_id)
     # print(rds.zrevrange("ReadRank",0, 9,withscores=True) )
     return read_view(request)