`
siu23
  • 浏览: 17194 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

分页数据Django零碎知识(13):分页功能

阅读更多

本文朋友在上海喝咖啡的时候突然想到的...之前就有想写几篇关于分页数据的文章,所以回家到以后就奋笔疾书的写出来发布了

    二、分页Paginator的解释

 1 >>> from django.core.paginator import Paginator
 2 >>> objects=['C#','Java','Python','JavaScript','PHP']
 3 >>> p =Paginator(objects,2)    #每页两条数据的一个分页器
 4 >>> p.count  #数据总数
 5 5
 6 >>> p.num_pages  #总页数
 7 3
 8 >>> p.page_range   #页码的表列
 9 [1, 2, 3]
10 >>> page1 = p.page(1)  #第1页
11 >>> page1
12 <Page 1 of 3>
13 >>> page1.object_list  #第1页的数据
14 ['C#', 'Java']
15 >>> page2=p.page(2)  #第2页
16 >>> page2
17 <Page 2 of 3>
18 >>> page2.object_list   #第2页的数据
19 ['Python', 'JavaScript']
20 >>> page2.has_next() #是不是有后一页
21 True
22 >>> page2.has_previous() #是不是有前一页
23 True
24 >>> page2.has_other_pages()  #是不是有其他页
25 True
26 >>> page2.next_page_number() #后一页的页码
27 3
28 >>> page2.previous_page_number() #前一页的页码
29 1
30 >>> page2.start_index() # 本页第一条记载的序数(从1开始)
31 3
32 >>> page2.end_index()  # 本页最后录一条记载的序数(从1开始)
33 4
34 >>> p.page(0)               #错误的页,抛出异常
35 ...EmptyPage: That page number is less than 1
36 >>> p.page(3)               #错误的页,抛出异常
37 ...EmptyPage: That page contains no results

接下来我们在视图数函中用使分页

    每日一道理
我拽着春姑娘的衣裙,春姑娘把我带到了绿色的世界里。
def listing(request):
    """
    功能说明: 分页示显
    -----------------------------------------------------------------------------
    改修人                改修时光                改修原因
    -----------------------------------------------------------------------------
    admin               2013-04-16          
    """
    news=New.objects.all().order_by('-id')
    paginator =Paginator(news,5)             #Show 5 news per page
    #定确分页求请是一个整数,如果不是则付交第一页
    try:
        page=int(request.GET.get('page',1))
    except VauleError:
        page=1
    #如果分页求请过超范围,则付交最后一页
    try:
        contacts=paginator.page(page)
    except (EmptyPage,InvalidPage):
        contacts = paginator.page(paginator.num_pages)
    return render_to_response('list.html',{'contacts':contacts})

在用使之前一定要住记导入:

from django.core.paginator import Paginator,EmptyPage,InvalidPage #导入分页模型

通过在url配置以后:

  (r'^listing/$','login.views.listing'),    #分页

接下来就是写模板了:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
{% for contact in contacts.object_list %}
{# 每一个contact都是News的象对#}
{{ contact.title}}<br/>
{% endfor %}
<hr style="color:#CC0"/>
<div class="pagination">
    <span class="step-links">
        {% if contacts.has_previous %}
        <a href="?page={{ contacts.previous_page_number }}">上一页</a>
        {% endif %}
        <span class="current">
        第{{ contacts.number }}页/ 共 {{ contacts.paginator.num_pages}}页
        </span>
        {% if contacts.has_next %}
        <a href="?page={{ contacts.next_page_number }}">下一页</a>
        {% endif %}
    </span>
</div>
</body>
</html>

好了,启动服务器,在浏览器中看查结果:

    

    

    

 

文章结束给大家分享下程序员的一些笑话语录: 那是习惯决定的,一直保持一个习惯是不好的!IE6的用户不习惯多标签,但是最终肯定还是得转到多标签的浏览器。历史(软件UI)的进步(改善)不是以个人意志(习惯)为转移的!

分享到:
评论

相关推荐

    Django入门基础教程:django模板

    Django入门基础教程:django模板 Django入门基础教程:django模板

    Django 搜索结果分页的实现 以及点击下一页搜索条件丢失可能的原因分析

    1.Django 搜索结果分页的实现 在这里我们用django自带的分页模块来实现 这个paginator对象中带有如下属性: #per_page:每页显示条目数量 #count:数据总个数 #num_pages:总页数 #page_range:总页数的索引范围,如...

    Python开发工程师学会用 Django 框架实现功能:理解 HTTP.zip

    这里我们将详细探讨Django框架如何处理HTTP请求以及如何构建响应,同时也会涉及Python语言和后端开发的一些基础知识。 首先,我们需要理解HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议,用于从万维网...

    Django结合Bootstrap完美实现分页效果

    在本文中,我们将深入探讨如何使用Django框架与Bootstrap前端库来实现动态、自适应的分页效果。Django是一个用Python编写的高效、可扩展的Web开发框架,而Bootstrap则是一个流行的前端开发工具,提供了丰富的UI组件...

    Django分页器代码

    总之,Django分页器是处理大量数据的有效工具,`django-pure-pagination`作为Django的一个第三方库,提供了一种简单易用的方式来实现分页功能。通过以上步骤,你可以快速地在你的Django项目中集成并使用这个库,提升...

    Django 简单实现分页与搜索功能的示例代码

    需要一个页面分页展示信息,在该页面添加搜索框以提供检索功能。 那么,我们知道,展示信息和检索功能是在同一个页面,也就是共用一个路由。 代码如下: 第一步,写路由:为了清晰,这里只给出主页和展示页面的路由...

    Django基础知识介绍

    比如用户认证(3.10 User authentication in Django)、缓存框架(3.11 Django’s cache framework)、国际化和本地化(3.15 Internationalization and localization)、日志记录(3.16 Logging)、分页(3.17 ...

    Django框架基础教程(一):简单介绍PythonDjango框架.pdf

    - **强大的数据库功能**:Django的ORM允许开发者通过Python类定义数据模型,自动生成数据库操作接口,还可以直接执行SQL语句。 - **内置管理后台**:通过简单的配置,Django可以快速生成一个强大的后台管理界面,...

    Django课件与代码

    Django,作为Python的一种热门Web框架,为开发者提供了强大的功能,让构建高效、优雅的Web应用变得简单。这个“Django课件与代码”资源专为想要学习Django的初学者设计,它包含了完整的课程材料和配套代码,帮助你从...

    bootstrap-table客户端分页实例

    这个"bootstrap-table客户端分页实例"是展示如何在不依赖服务器端处理的情况下,利用前端数据实现表格的分页功能,这对于小型项目或者数据量不大的场景非常实用。 Bootstrap Table的核心特性包括: 1. **数据源**...

    Django 分页处理.zip

    - 对于大量数据,考虑使用缓存或数据库级别的分页功能来进一步优化。 - 当用户直接访问非法页码时,确保你的视图能正确处理这种情况,避免返回404错误。 在Django项目`my_project`中,你可能已经创建了一个类似...

    Django原生sql也能使用Paginator分页的示例代码

    总的来说,Django的Paginator分页功能非常强大,但是当需要处理原生SQL查询时,需要自定义类来实现必要的方法。通过这种方式,我们可以在保持灵活性的同时,充分利用Django内置的分页机制,提高代码的可复用性和维护...

    Django框架实现的简单分页功能示例

    ### Django框架实现的简单分页功能详解 #### 一、引言 在Web应用开发过程中,随着数据库中存储的数据量逐渐增大,为了提高用户体验及页面加载速度,分页功能成为了必不可少的一部分。本篇文章将详细介绍如何在...

    Django+Paginator模块+LayUi实现分页(精简版)

    上一篇也分享了一个关于Paginator+layui的ajax动态加载数据的博客,只是用到了layui静态表格、样式,功能上是根据自己思路用jQuery动态加载数据的博客分享,说白了上一篇是基本原生的写法,并没有用到layui框架内置...

    Django Web开发指南.pdf

    不过,根据标题和描述,可以推断出知识点与《Django Web开发指南》有关,该文档可能是关于Django框架的指导手册,主要面向希望学习或提高Django Web开发技能的人群。 Django是一个高级的Python Web框架,它鼓励快速...

    Django 1.6 官方文档

    在接下来的文本中,我将根据给定文件的标题、描述、标签以及部分内容中提取的信息,详细地介绍Django 1.6官方文档中所包含的知识点。 ### Django 1.6 官方文档 Django是一个开源的高层次Python Web框架,它鼓励...

    django2教程

    从上述内容中,我们可以提炼出Django的一些核心知识点: 1. Django的MTV架构模式:Model负责数据和业务逻辑的处理,Template负责显示逻辑,View负责业务逻辑的处理。 2. Django的内置功能:如用户认证系统、内容...

    Django+Vue:Python Web全栈开发-Django4.1教程

    本文包含:Django框架基础知识、Django视图和模板、Django框架和模型和django框架后台、Django框架实战:开发企业官网、Rest Framework 、Vue前端、Vue+Django综合项目;Vue前端对接:通过Vue与后端API进行数据交互...

    Django web framework

    此外,Django文档中的“模板层”部分着重于如何定义和使用模板来展示数据,以及如何进行模板继承和模板标签的编写。 关于Django的“开发过程”,文档会指导开发者如何有效地进行项目开发,包括测试、调试和优化。而...

Global site tag (gtag.js) - Google Analytics