Django作为Python Web开发框架的一哥,提供了企业级网站开发所需要的几乎所有功能,其中就包括自带分页功能。利用Django自带的Paginator类,我们可以很轻松地实现分页。Django 2.0和1.X最大的不同在于新增了get_page()方法。我们现在来具体看看有什么不同。
Django 1.X 和Django 2.0下实现分页
利用Django实现分类非常简单,我们只需要修改views.py和模板template。Django 1.X下实现分页代码如下:
# app/views.py - 基于函数的视图
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from .models import Article
from django.shortcuts import render
def article_list(request): article_list = Article.objects.all() paginator = Paginator(article_list, 10) # 实例化一个分页对象, 每页显示10个 page = request.GET.get('page') # 从URL通过get页码,如?page=3 try: articles = paginator.page(page) # 获取某页对应的记录 except PageNotAnInteger: # 如果页码不是个整数 articles = paginator.page(1) # 提取第一页的记录 except