ireport 分页配置每也显示多少条_PythonDjango中分页功能详细讲解,附代码

a9406239ca09e256b834a346eee31f22.png

    在django框架中,分页有原生分页和django自带的分页功能,此篇文章主要向大家展示django框架中自带的分页功能。阅读此文章需要对python和django框架有一些基础。好了,废话少说,马上步入正题。


 app配置URL

from django.conf.urls import urlfrom . import viewsurlpatterns=[    url(r'^$',views.index_view),    url(r'^page/(\d+)$',views.index_view),    ]

创建视图

# 实现功能为:根据每页需要显示多少条数据,对总共的数据进行分页# 每次显示10页内容,类似百度分页# -*- coding: utf-8 -*-from __future__ import unicode_literalsfrom django.shortcuts import renderfrom django.core.paginator import Paginatorfrom .models import *# Create your views here.def get_post_by_num(num):    # num为前端传过来的页码数,转换int类型    # 分页需要用到 Paginator 这个关键的模块    num = int(num)    # per_page字段是每页显示多少条数据,这里设置1是每页1条数据    page_posts=Paginator(Post.objects.order_by("-created"),per_page=1)    #每页开始页码    begin = (num-int(math.ceil(10.0/2)))    if begin<1:        begin = 1    # 每页结束页码    end = begin+9    if end >page_posts.num_pages:        end = page_posts.num_pages    if end <=10:        begin = 1    else:        begin = end -9    pagelist = range(begin,end+1)    return page_posts.page(num),pagelistdef index_view(request,num='1'):    # 查询第一页的数据    page_posts,page_range= get_post_by_num(num)    return render(request,'index.html',{'page_posts':page_posts,'page_range':page_range})

创建模版

{% for post in page_posts.object_list %}    class=            
class="article-meta"> class="article-date"> {{ post.created|date:'Y年m月d日' }}
class="article-category"> class="article-category-link" href="#" target="_blank">{{ post.category.cname }}
class="article-inner"> class="article-header">

"name"

> class="article-title" href="#" target="_blank">{{ post.title }}
class="article-entry" itemprop="articleBody">

前言

{{ post.desc }}

class

="article-more-link"> "/post/{{ post.id }}" target="_blank">阅读全文
class="article-footer"> "存放文章的url" class="article-share-link">分享 class="article-tag-list"> {% for tag in post.tags.all %} class="article-tag-list-item"> class="article-tag-list-link" href="#">{{ tag.tname }} {% endfor %}
            {% endfor %} "page-nav"> {% if page_posts.has_previous %} class= {% endif %} {% for page in page_range %} {% if page_posts.number == page %}                        class="page-number current">{{ page }} {% else %}                        class= {% endif %}                 {% endfor %} {% if page_posts.has_next %} class=                {% endif %}          {% endblock main %}

9b564a99ce2a6d0cf95764bb2b53be58.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值