在开发 Web 应用时,处理大量数据时分页功能是非常必要的。Django 提供了强大的分页工具,帮助开发者高效实现数据分页展示。以下是关键步骤和示例:

1. 分页配置 🛠️

settings.py 中启用分页模块:

INSTALLED_APPS = [
    ...
    'django.core.paginator',
]

📌 注意:确保已安装 django-pagination 包(如需,可前往/zh/tutorials/django-installation查看安装教程)

2. 视图实现 📜

在视图中使用 Paginator 类:

from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger

def my_view(request):
    items = Item.objects.all()
    paginator = Paginator(items, 10)  # 每页显示10条数据
    page = request.GET.get('page')
    try:
        paginated_items = paginator.page(page)
    except PageNotAnInteger:
        paginated_items = paginator.page(1)
    except EmptyPage:
        paginated_items = paginator.page(paginator.num_pages)
    return render(request, 'template.html', {'items': paginated_items})

3. 模板渲染 🧩

在模板中使用分页导航:

<div>
    <ul>
        {% for item in items %}
            <li>{{ item.name }}</li>
        {% endfor %}
    </ul>
    <div class="pagination">
        {% if items.has_previous %}
            <a href="?page={{ items.previous_page_number }}">上一页</a>
        {% endif %}
        <span>第 {{ items.number }} 页</span>
        {% if items.has_next %}
            <a href="?page={{ items.next_page_number }}">下一页</a>
        {% endif %}
    </div>
</div>

4. 扩展阅读 📚

分页_示例

📌 提示:分页功能可提升用户体验,建议结合实际需求调整每页数据量和导航样式。如需进一步优化,可参考分页性能优化指南