前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python Django个人网站搭建12-根据浏览量排序最热文章

Python Django个人网站搭建12-根据浏览量排序最热文章

作者头像
zifan
发布2021-12-14 12:32:08
3050
发布2021-12-14 12:32:08
举报

作者: zifanwang  发布于2020-05-17

重写article/views.py的article_list():

代码语言:javascript
复制
# 文章列表函数
def article_list(request):
    # 根据GET请求中查询条件
    # 返回不同排序的对象数组
    if request.GET.get('order') == 'total_views':
        article_list = ArticlePost.objects.all().order_by('-total_views')
        order = 'total_views'
    else:
        article_list = ArticlePost.objects.all()
        order = 'normal'
    paginator = Paginator(article_list, 3)
    page = request.GET.get('page')
    articles = paginator.get_page(page)
    # 修改此行
    context = {'articles': articles, 'order': order}
    return render(request, 'article/list.html', context)

'-total_views’为反序,即文章浏览量高的在前面 接下来修改templates/article/list.html

代码语言:javascript
复制
...
{% block content %}
    <div class="container">
        <nav aria-label="breadcrumb">
            <ol class="breadcrumb">
            <li class="breadcrumb-item">
                <a href="{% url 'article:article_list' %}">
                    New
                </a>
            </li>
            <li class="breadcrumb-item">
                <a href="{% url 'article:article_list' %}?order=total_views">
                    Hot
                </a>
            </li>
        </ol>
        </nav>
        <div class="row mt-2">
            {% for article in articles %}
            ...

运行服务器(python manage.py runserver)点击最热查看效果:

可以看见文章排序是按照文章浏览量排序的了

这样最热文章功能就完成了

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档