简单的Django分页功能的示例

下面是一个简单的Django分页功能的示例,包括视图函数和对应的模板文件:

假设有一个名为 myapp 的应用,其中有一个名为 MyModel 的模型需要分页显示。

  1. 在视图文件 views.py 中编写分页功能的视图函数:
from django.shortcuts import render
from django.core.paginator import Paginator
from myapp.models import MyModel

def my_view(request):
    # 获取所有MyModel对象
    queryset = MyModel.objects.all()
    
    # 创建分页器对象,每页显示5条记录
    paginator = Paginator(queryset, 5)
    
    # 获取当前页数,默认为1
    page_number = request.GET.get('page', 1)
    
    # 获取当前页的数据对象
    page_obj = paginator.get_page(page_number)
    
    # 将分页数据传递给模板进行渲染
    return render(request, 'my_template.html', {'page_obj': page_obj})

templates 目录下创建模板文件 my_template.html,并编写用于显示分页数据的模板:




    
    My Page


    

My Page

    {% for obj in page_obj %}
  • {{ obj }}
  • {% endfor %}
{% if page_obj.has_previous %} First Previous {% endif %} {{ page_obj.number }} {% if page_obj.has_next %} Next Last {% endif %}

在这个示例中,视图函数 my_view 获取了所有的 MyModel 对象,并使用 Paginator 对象对数据进行分页处理。然后,将分页数据传递给模板 my_template.html 进行渲染。模板中通过循环遍历 page_obj 来显示当前页的数据,并根据 has_previoushas_next 来显示分页导航链接。

你可能感兴趣的:(django,django,python,后端)