21-django-pure-pagination分页
一、django-pure-pagination分页
github上的描述(django-pure-pagination provides advanced pagination features and is fully compatible with existing code based on Django's core pagination module. (aka no need to rewrite code!)),意思就是说Django-pure-pagination是基于Django的核心分页模型上开发出来,更好地去开发,当然目标是唯一的,但工具是多样的,只要实现目标,那么也是可以的。如果Bootstrap(衣服)会的也可以用Bootstrap实现分页的效果图。
要求:
Django 1.7+
1、在自己开发项目环境(虚拟环境下安装包):
pip install django-pure-pagination
或者从github上将源码克隆下来(这样可以使用最新的功能啦):
git clone git@github.com:jamespacileo/django-pure-pagination.git cd django-pure-pagination python setup.py install
2、安装好环境那么去Django项目中配置settings中的INSTALL_APPS里注册pure-pagination:
INSTALLED_APPS = (
...
'pure_pagination',
)
3、接下来注册完就可以使用啦,去到视图中导入模板并查询相关数据分页:
from pure_pagination import Paginator,EmptyPage,PageNotAnInteger
def get(self,request):
all_teachers = Teacher.objects.all()
# 对老师列表进行分页
try:
#取出页码值,如果没有页码值默认为1
page = request.GET.get("page", )
#如果是字符串的话也是默认为1
except PageNotAnInteger:
page =
#对从数据库查出来的所有对象以10个记录作为一页返回Paginator对象
p = Paginator(all_teachers, , request=request)
#对象有page方法参数是页数,返回的是对象列表和当前的页数
teachers = p.page(page)
#将每一页数据传入然后由模板渲染
return render(request,"teachers-list.html",{
"all_teachers":teachers,})
Paginator对象初始化:
def __init__(self, object_list, per_page, orphans=, allow_empty_first_page=True, request=None):
4、对模板的数据写入:
<div class="butler_list layout">
<div class="head">
<ul class="fl tab_header">
<li {% if sort == "" %}class="active"{% endif %}><a href="?sort=">全部</a> </li>
<li {% if sort == "hot" %}class="active"{% endif %}><a href="?sort=hot">人气 &#;</a></li>
</ul>
<div class="fr butler-num">共<span class="key">{{ all_teachers|wordcount }}</span>人 </div>
</div>
{#all_teachers.object_list这是每一条记录的遍历,all_teachers是Paginator对象的page方法,方法返回值object_list与number,然而object_list#}
{#是每一页的所有记录,因此需要用Paginator.page对象去遍历出每条记录#}
{% for teacher in all_teachers.object_list %}
<dl class="des">
<dt>
<a href="{% url "org:teacher_detail" teacher.id %}">
<div class="picpic">
<img width="" height="" class="scrollLoading" src="{{ MEDIA_URL }}{{ teacher.image }}"/>
</div>
</a>
<div class="btn">
<div class="fr btn2 bdsharebuttonbox"
data-text="授课教师-{{ teacher.name }}-慕学在线"
data-desc="{{ teacher.points }}"
data-comment="{{ teacher.name }}金牌讲师,从业年限:{{ teacher.work_years }}年"
>
<span class="fl">分享</span>
<a href="#" class="bds_more" data-cmd="more"></a>
</div>
</div>
</dt>
<dd>
<a href="{% url "org:teacher_detail" teacher.id %}">
<h1>{{ teacher.name }}<span class="key picbig">金牌讲师</span></h1>
</a>
<ul class="cont">
<li>工作年限:<span>{{ teacher.work_years }}年</span></li>
<li>工作职位:<span>{{ teacher.work_position }}</span></li>
<li>就职公司:<span>{{ teacher.work_company }} </span></li>
<li>年龄:<span>{{ teacher.age }}岁</span></li>
<li>教学特点:<span>{{ teacher.points }}</span></li>
</ul>
</dd>
<a class="buy buyservice" href="{% url "org:teacher_detail" teacher.id %}"><br/>查看<br/>详情</a>
</dl>
{% endfor %} </div>
5、模板页码操作:
<div class="pageturn">
<ul class="pagelist">
{% if all_teachers.has_previous %}
<li class="long"><a href="?{{ all_teachers.previous_page_number.querystring }}">上一页</a></li>
{% endif %}
{% for page in all_teachers.pages %}
{% if page %}
//all_teachers的方法number就是有Paginator对象的page方法传回
{% ifequal page all_teachers.number %}
<li class="active"><a href="?{{ page.querystring }}">{{ page }}</a></li>
{% else %}
<li><a href="?{{ page.querystring }}" class="page">{{ page }}</a></li>
{% endifequal %}
{% else %}
<li class="none"><a href="">...</a></li>
{% endif %}
{% endfor %}
{% if all_teachers.has_next %}
<li class="long"><a href="?{{ all_teachers.next_page_number.querystring }}">下一页</a></li>
{% endif %}
</ul>
</div>
21-django-pure-pagination分页的更多相关文章
- Django 利用 Pagination 分页
Django自身提供了一些类来实现管理分页,数据被分在不同的页面中,并带有“上一页/下一页”标签.这个类叫做Pagination,其定义位于 django/core/paginator.py 中. 一 ...
- Django框架 之 Pagination分页实现
Django框架 之 Pagination分页实现 浏览目录 自定义分页 Django内置分页 一.自定义分页 1.基础版自定义分页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
- django: django rest framework 分页
django: django rest framework 分页 2018年06月22日 13:41:43 linux_player_c 阅读数:665更多 所属专栏: django 实战 版权声 ...
- Django内置分页
一.django内置分页 from django.shortcuts import render from django.core.paginator import Paginator, EmptyP ...
- Django拾遗--pagination、sitemap、admin、form
Django拾遗--pagination.sitemap.admin.form pagination 其实这个分页模块的原理就是根据设定的每页条数来分割queryset.查询结果/每页子项数目=页数 ...
- Django中的分页,cookies与session
cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不 ...
- jQuery Pagination分页插件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- django: rest-framework的 分页和过滤
django: rest-framework的 分页和过滤 2018年06月28日 10:09:01 weixin_42359464 阅读数:136 标签: flaskrestframeworkdja ...
- django视图之分页
在网站开发时,肯定会遇到分页的事情需要处理,在django中也是如此,在Django中处理分页一般会使用到两个类django.core.paginator.Paginator和django.core. ...
- django上课笔记2-视图CBV-ORM补充-Django的自带分页-Django的自定义分页
一.视图CBV 1.urls url(r'^login.html$', views.Login.as_view()), 2.views from django.views import View cl ...
随机推荐
- 面试百度、阿里、腾讯,这134道Java面试题你会多少?
这里一共是134道Java面试题,看看你能对几道吧! 1. Java 语言有哪些特点 2. 面向对象和面向过程的区别 3. 关于 JVM JDK 和 JRE 最详细通俗的解答 4. Oracle JD ...
- 【nginx+keepalived】nginx+keepalived搭建高可用
一.结构及环境 1.1 环境介绍 操作系统:centos7 nginx+keepalived:106.53.73.200 master nginx+keepalived:182.254.184.102 ...
- grid行高亮显示
grid var grid = new Ext.RSEGrid({ //数据显示面板 id: 'O005_grid', title: '图纸目录', loadMask: true, autoScrol ...
- oop面向对象【接口、多态】
今日内容 1.接口 2.三大特征——多态 3.引用类型转换 教学目标 1.写出定义接口的格式 2.写出实现接口的格式 3.说出接口中成员的特点 4.能够说出使用多态的前提条件 5.理解多态的向上转型 ...
- Sql Server数据库常用Transact-SQL脚本
数据库 1.创建数据库 USE master ; GO CREATE DATABASE Sales ON ( NAME = Sales_dat, FILENAME = 'C:\Program File ...
- linux globbing文件名通配
globbing:文件名通配 元字符: *:匹配任意长度的任意字符 ?:匹配任意单个字符 []:匹配指定范围内的任意单个字符 [a-z]或者[A-Z]或者[[:alpha:]]:匹配任意一个字母 [[ ...
- linux中批量添加文件前缀的操作
需要在文件夹内所有txt文件的文件名前面添加"gt_"; 就是由原来的文件“xxx.txt”变成“gt_xxx.txt”: 网上搜来的脚本如下: for i in `ls`; do ...
- Appium(七):Appium API(一) 应用操作
1. 应用操作 本章所罗列的方法主要针对应用的操作,如应用的安装.卸载.关闭.启动等. 把前面的启动代码放在这里,后面只展示不同的部分. # coding:utf-8 from appium impo ...
- 监听属性watch
immediate.deep data() { return { firstName: "刘", lastName: "XX", fullName: " ...
- React劲爆新特性Hooks 重构去哪儿网火车票PWA
React劲爆新特性Hooks 重构去哪儿网火车票PWA 获取课程资料链接:点击这里获取 本课程先带你细数最近一年来React的新特性,如Hooks.Redux API,让你从头理解Hooks对传统R ...