博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django paginator 分页功能
阅读量:4355 次
发布时间:2019-06-07

本文共 2087 字,大约阅读时间需要 6 分钟。

django 自带了一个分页的功能 ,使用起来很方便 。下面是使用方法 :

views.pydef index(request):    context  =  {}    article = Article.objects.all()    page = request.GET.get('page',1)    context = get_paginator(article,page)    return render(request, 'home/index.html',context)为了让主函数不要过于复杂,将分页器的功能分离出来了。

分页的主代码 :

from django.core.paginator import Paginator,InvalidPage,EmptyPage,PageNotAnIntegerdef get_paginator(obj,page):    page_size = 10 #每页显示的数量    after_range_num = 5    before_range_num = 6     context = {}    try:        page = int(page)        if page <1 :            page = 1     except ValueError:        page = 1     paginator = Paginator(obj,page_size)    try:        obj = paginator.page(page)    except(EmptyPage,InvalidPage,PageNotAnInteger):        obj = paginator.page(1)        if page >= after_range_num:        page_range = paginator.page_range[page-after_range_num:page+before_range_num]    else:        page_range = paginator.page_range[0:int(page)+before_range_num]        context["page_objects"]=obj    context["page_range"]=page_range    return context

templates 中如下实现:

{% for article in page_objects.object_list %}

{
{article.subject}}

{

{article.content|safe|escape}}

{%endfor%}

{% if page_objects.has_previous %} {% trans "next page"%} {% endif %} {% for p in page_range %} {% ifequal p page_objects.number %} { {p}} {% else %}{

{p}}{% endifequal %} {% endfor %} {% if page_objects.has_next %} {% trans "next page"%} {% endif %} {%if page_objects.paginator.num_pages%} {
{ page_objects.paginator.num_pages }}{% trans "page"%}{%endif%}

转载于:https://www.cnblogs.com/yeelone/archive/2012/11/15/2771050.html

你可能感兴趣的文章
C++:文件的输入和输出
查看>>
Http协议、Tomcat、servlet
查看>>
Spring Boot (11) mybatis 关联映射
查看>>
macOS 下安装tomcat
查看>>
字符串格式化复习笔记
查看>>
c++ 宏定义调用不定参数的函数
查看>>
动态规划典型例题--背包问题九讲
查看>>
Qt之QHeaderView自定义排序(终极版)
查看>>
python----logging
查看>>
LBP特征 学习笔记
查看>>
与TIME_WAIT相关的几个内核参数修改测试讨论结论
查看>>
webpack构建react应用三:使用webpack Loaders 模块加载器(一)
查看>>
Java JDBC
查看>>
走势终完美 --执子之手
查看>>
补全左括号
查看>>
javascript中关于坐标 大小 的描述
查看>>
8086CPU各寄存器的用途
查看>>
AngularJs中,如何在render完成之后,执行Js脚本
查看>>
Nginx 防盗链
查看>>
如何讓Android系統顯示CJK擴展區漢字
查看>>