django分页

本文介绍了如何在Django中实现分页功能,包括创建商品表、获取并分页显示所有商品,以及在视图和HTML页面中的具体实现,同时探讨了如何展示上一页、下一页和当前页。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现django分页功能

流程简介

  • 建一个商品表并在表中添加至少2个以上的商品,然后实现首页展示所有的商品
  • 在首页视图函数中 获取商品表的所有数据,然后进行分页操作

具体代码如下

  1. views视图中
from django.core.paginator import Paginator

def index(request,pindex):
	if request.method == 'GET':
		g_list = Fiction.objects.all()  # 获取商品表的所有数据
        paginater = Paginator(g_list,1)  # 分页(表中所有数据,每页显示几条数据)
        if pindex == '':   # 如果访问首页,默认是第一页
            pindex = 1
        page = paginater.page(pindex)  
        context = {'page':page}
        return render(request,'xiaoapp/index.html',context)
  1. html页面中展示
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>

<table border="1">
    <tr>
        <th>小说名称</th>
        <th>小说图片</th>
        <th>操作</th>
    </tr>
    {% for i in page %}
    <tr>
        <td><a href="/xiaoapp/show/">{{ i.name }}</a></td>
        <td><img src="{{ i.image.url }}" alt="" width="100px" height="100px"></td>
        <td><a href="/xiaoapp/delete/?id={{ i.id }}">删除</a></td>
    </tr>
    {% endfor %}
</table>
<div>
    总页数:{{ page.paginator.num_pages }}
    {% for i in page.paginator.page_range %}
        <a href="{% url 'xiaoapp:index' i %}">{{ i }}</a>
    {% endfor %}
</div>
</body>
</html>
  • 以下是拓展 , 展示上一页,下一页,当前页
<div>
    总页数:<span>{{ page.paginator.num_pages }}</span>
    {% if page.has_previous %}
        <a href="{% url 'lianapp:index' page.previous_page_number %}">上一页</a>
    {% endif %}
    {% for p in page.paginator.page_range %}
        <a href="{% url 'lianapp:index' p %}">{{ p }}</a>
    {% endfor %}
    {% if page.has_next %}
        <a href="{% url 'lianapp:index' page.next_page_number %}">下一页</a>
    {% endif %}
    当前页:{{ page.number }}
</div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值