django学习笔记:django-pagination分页应用和内置的分页处理


layout: post
title: “django学习笔记:django-pagination分页应用和内置的分页处理 ”
date: 2011-12-17 16:13
comments: true
categories: [django,python]
tags: [django,pagination]

## django学习笔记:django-pagination分页应用和内置的分页处理

django-pagination的分页

{% load pagination_tags %} #导入pagination模板标签

{% autopaginate scenics_list 15 %} # 加上这一行处理分页,后面跟的那个整数表示每页多少条记录。
{% for scenic in scenics_list %}
{{ scenic.title }}
{% endfor %}

{% paginate %} # 秀出分页


------------ 分割线 -------------
原django自带的分页:

from django.views.generic import list_detail, create_update #导入通用视图
scenic_list_info = {
‘queryset': Scenic.objects.all(), #必要参数,要列出的对象的QuerySet显示出来的结果集; 其余为可选参数。
‘template_name': ‘scenics/scenic_list.html’, #模板名称,不指定的话默认使用 templates/_list.html
‘template_object_name': ‘scenics’, #在模板中,通用视图会通过在template_object_name后追加一个_list的方式来创建一个表示列表项目的变量名 scenics_list 。以便制作友好的模板Context,在模板中引用 {% for scenic in scenics_list %} 。
‘allow_empty': True,
‘paginate_by': 15, #一个整型数,分页时用到,用来制定每页显示多少条记录。
#’extra_context': {‘book_list': Book.objects.all()}
#’extra_context': {‘string':’aaa’,’query':get_query} #向通用视图传递额外的数据,以字典形式存储
}
<div style="text-align:center;width:75%;font-size:12px;">
{% if is_paginated %}
{% ifequal page 1 %}
首页
{% else %}
<a href="?page=1">首页</a>
{% endifequal %}
{% if has_previous %}
<a href="?page={{ previous }}">上一页</a>
{% else %}
上一页
{% endif %}
{% if has_next %}
<a href="?page={{ next }}">下一页</a>
{% else %}
下一页
{% endif %}
{% ifequal page pages %}
末页
{% else %}
<a href="?page={{ pages }}">末页</a>
{% endifequal %}
&nbsp;&nbsp;
当前页:{{ page }}/{{ pages }}
&nbsp;&nbsp;
{% endif %}
</div>
标签: django