Django(二)精美博客搭建(11)实现文章列表分页查询及首页简单优化

前言

本章主要讲述 【学无止境】 界面功能的实现以及 【首页】 展示数据的简单优化

  • ps:【学无止境】界面其实就是 文章列表,只是这里我加了个分页查询,可以查询到所有的数据
    之前的【首页】,我默认是返回了查询所有的数据,正常情况下首页简单展示几条就行了,所以我这里简单优化了下

主要知识点:

  • 文章列表分页实现

环境:

  • Pycharm
  • python3.6
  • mysql 5.7
  • django 2.0.13


一、新功能项目概览

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述



二、首页数据展示优化

这里只是简单优化一下,因为正常情况下我们首页不需要显示所有数据,之前我们是返回了所有,逻辑改为:

  • 【顶部博客】取值:按click_num降序排列取前3条数据
  • 【时间轴】取值:按发布时间降序排列取前4条数据

1、user/views.py

  • 这里前端不需要变更,简单改下后端数据返回逻辑即可

在这里插入图片描述

def index(request):
    """
    返回首页
    :param request:
    :return:
    """
    # 首页推荐文章:按照点赞数降序排列,默认拿前3条
    figure_articles = Article.objects.all().order_by('-click_num')[:3]
    # 时间轴文章:首页按时间降序排列,默认显示前4条
    darticles = Article.objects.all().order_by('-date')[:4]
    return render(request, "index.html", context={
   'figure_articles': figure_articles, 'darticles': darticles})


三、学无止境功能具体实现

  • 学无止境其实就是文章列表,与文章相关的功能都统一写在article应用

1、urls.py

在这里插入图片描述

# 学无止境列表
path('show', article_show, name='show'),

2、views.py

  • 后端这里进行了分页用到了Paginator,关于Paginator的常用方法和属性我写在注释了,大家到时候看下注释就行,我就不单独拧出来说了

在这里插入图片描述

def article_show(request):
    """
    学无止境列表:进行分页查询
    :param request:
    :return:
    """
    tags = Tag.objects.all()[:6]  # 拿到前6个标签
    tid = request.GET.get('tid')  # 拿到请求的标签id
    if tid:
        # 如果参数传了标签id,拿到当前标签,然后通过当前标签拿到对应标签的所有的文章
        tag = Tag.objects.get(pk=tid)
        print("tag:", tag)
        articles = tag.article_set.all()
        print("通过标签查询到的所有文章:", articles)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M1kasal

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值