1.分页器基础学习

1.1 补充知识-批量创建

数据库中数据批量创建,不要每创建一个就往数据库中塞一个,会造成撞库,造成大量I/O操作,速速较慢,应该采用一次性创建大量数据,一次性将大量数据塞入到数据库中。

主要用到:库名.objects.bulk_create(数据)

def index(request):
    book_list=[]
    for i in range(1,101):
        book = Book(title="book%s"%i,price=i*i)
        book_list.append(book)

    # 数据批量添到数据库中
    Book.objects.bulk_create(book_list)
    return HttpResponse("ok")

展示如下

WEB框架-Django组件学习-分页器学习

WEB框架-Django组件学习-分页器学习

1.2 django自带分页器组件

1.2.1 django常用参数

#分页器组件导入
from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger

#全局信息查询

paginator = Paginator(book_obj,10) :分页对象,俩个参数,第一个为数据,第二个为每页展示的数量  
paginator.count:  展示分页的数据大小
paginator.num_pages:展示总计分页数量
paginator.page_range :类似range的数据类型

#单页信息查询

page = paginator.page(1)#页面对象
page.object_list#打印当前页面的数据量大小
page.has_next()#是否有下一页
page.has_previous()#是否有上一页
page.next_page_number()#当前页的上一页的页码是多少
page.previous_page_number()#当前页的下一页的页码是多少

1.2.2 其他参数

 

1.3 分页器的基本应用

1.3.1 分页展示数据

def book_list(request):
  
    book_obj = Book.objects.all()
    # 分页器对象
    paginator = Paginator(book_obj,10)
    # 获取当前页码
    current_page = int(request.GET.get("page"))
    # 实例一个页面对象
    page = paginator.page(current_page)



    return render(request,'book_list.html',locals())
#需要注意的是:在模板层记得更改循环的对象

展示如下

WEB框架-Django组件学习-分页器学习

1.3.2 错误页展示

对于超出的页码以及错误输入默认展示第一页

WEB框架-Django组件学习-分页器学习

展示如下,错误跳转以及默认跳转

WEB框架-Django组件学习-分页器学习WEB框架-Django组件学习-分页器学习

1.3.3 页面页码显示

页面页码展示主要是模板层代码改变

首先调用bootstrap,或文件或cdn

WEB框架-Django组件学习-分页器学习

页面展示

WEB框架-Django组件学习-分页器学习

1.3.4 上一页,下一页功能

上一页,下一页功能实现,主要用

page.has_next()#是否有下一页
page.has_previous()#是否有上一页
page.next_page_number()#当前页的上一页的页码是多少
page.previous_page_number()#当前页的下一页的页码是多少

展示如下

WEB框架-Django组件学习-分页器学习

视图层完整代码

def book_list(request):

    book_obj = Book.objects.all()
    # 分页器对象
    paginator = Paginator(book_obj,10)
    try:
        # 获取当前页码,后面默认页为1
        current_page = int(request.GET.get("page"))
        # 实例一个页面对象
        page = paginator.page(current_page)
    # 错误页码默认跳转到首页
    except EmptyPage as e:
        page = paginator.page(1)

    return render(request,'book_list.html',locals())
视图层

相关文章:

  • 2021-07-01
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-04
  • 2021-09-07
  • 2021-06-01
猜你喜欢
  • 2021-07-13
  • 2022-12-23
  • 2022-12-23
  • 2019-11-17
  • 2021-08-23
  • 2021-11-18
相关资源
相似解决方案