使用原来的SQLite数据库:

访问量自增,然后保存入数据库

# 法1:Model直接:自定义数据类型 存储访问量
# article.viewers_count += 1
article.viewers_count = total_views
article.save()          # 临时变量保存入数据库

使用Redis数据库

# 3种方法记录访问量:
# Redis数据库:
# 下面2个变量都是用于记录 访问量的,有点冗余


设置键值对:自增,存储访问量      article:article.id:views   对应   数值  
# 法2:incr函数键值递增,article:id:views的方式命名一个键
total_views = r.incr("article:{}:views".format(article.id))
读取值:
r.get("article:{}:views".format(article.id))

定义一个表格,用于记录与查询,    article.id  对应  amount
# 法3:重新定义一个 键对值, 用于记录访问量
r.zincrby(name='article_ranking_table', amount=1, value=article.id)
# 访问量排序
article_ranking = r.zrange(name='article_ranking_table', start=0, end=-1, desc=True)[:10]
article_ranking_ids = [int(id) for id in article_ranking]
most_viewed = list(ArticlePost.objects.filter(id__in=article_ranking_ids))
most_viewed.sort(key=lambda x: article_ranking_ids.index())