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 [email protected]: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)
       #如果是字符串的话也是默认为1
        except PageNotAnInteger:
            page = 1
         #对从数据库查出来的所有对象以10个记录作为一页返回Paginator对象
        p = Paginator(all_teachers, 10, 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=0, allow_empty_first_page=True, request=None):

4、对模板的数据写入:

class="butler_list layout">
class="head">
class="fr butler-num">共class="key">{{ all_teachers|wordcount }}人   
{#all_teachers.object_list这是每一条记录的遍历,all_teachers是Paginator对象的page方法,方法返回值object_list与number,然而object_list#}
           {#是每一页的所有记录,因此需要用Paginator.page对象去遍历出每条记录#} {
% for teacher in all_teachers.object_list %}
class="des">
"{% url "org:teacher_detail" teacher.id %}">
class="picpic"> "100" height="100" class="scrollLoading" src="{{ MEDIA_URL }}{{ teacher.image }}"/>
class="btn">
class="fr btn2 bdsharebuttonbox" data-text="授课教师-{{ teacher.name }}-慕学在线" data-desc="{{ teacher.points }}" data-comment="{{ teacher.name }}金牌讲师,从业年限:{{ teacher.work_years }}年" > class="fl">分享 "#" class="bds_more" data-cmd="more">
"{% url "org:teacher_detail" teacher.id %}">

{{ teacher.name }}class="key picbig">金牌讲师

    class="cont">
  • 工作年限:{{ teacher.work_years }}年
  • 工作职位:{{ teacher.work_position }}
  • 就职公司:{{ teacher.work_company }} 
  • 年龄:{{ teacher.age }}岁
  • 教学特点:{{ teacher.points }}
class="buy buyservice" href="{% url "org:teacher_detail" teacher.id %}">
查看
详情
{% endfor %}

 

5、模板页码操作:

 
class="pageturn">

你可能感兴趣的:(21-django-pure-pagination分页)