Django的分页功能

1、设计模型准备数据

class Student(models.Model):
    s_name = models.CharField(max_length=50)
    s_age = models.ImageField(default=16)

2、展示数据

# 在数据库中自行添加数据

def getStudentsPage(request):

    students = Student.objects.all()

    data = {
        'studentsAll':students,
    }


    return render(request,'student_page.html',context=data)
    
# 将服务器中的数据展示出来

3、分页功能

1、将数据集合分成多页数据

paginator = Paginator(数据集合,每页数据的数量)

2、获得指定页数据

currPage = paginator.page(页码)
数据集合 = currPage.object_list

3、示例

def getStudentsPage(request,pagenumber):

    students = Student.objects.all()

    pageInator =Paginator(students,4)

    currPage = pageInator.page(pagenumber)

    studentsPage = currPage.object_list

    data = {
        'studentsPage':studentsPage,
        'page_range':pageInator.page_range,
        'currPagepagenumber':int(pagenumber),
        'currPage':currPage,
    }


    return render(request,'student_page.html',context=data)

4、html页面




    
    分页
	# 导入jquery
    
    # 导入css
    
    # 导入js
    




	# 遍历学生
    
    {% for student in studentsPage %}
  • 姓名:{{ student.s_name }}     年龄:{{ student.s_age }}
  • {% endfor %}
    # 判断是否有上一页 {% if currPage.has_previous %}
  • «
  • {% else %}
  • «
  • {% endif %} # 遍历展示页面 {% for i in page_range %} {% ifequal i currPagepagenumber %} # i 与当前页相等,设置显示效果
  • {{ i }} {% else %}
  • {{ i }} {% endifequal %} {% endfor %} # 判断是否有后一页 {% if currPage.has_next %}
  • »
  • {% else %}
  • »
  • {% endif %}

你可能感兴趣的:(Django的分页功能)