1.dj-pagination
这是一个专门分页的Django插件,可以快速的实现数据分页。
官方文档[http://dj-pagination.readthedocs.io/en/latest/usage.html#usage]
2.快速实现
- 安装
pip install dj-pagination
- 安装
-
- 设置
#1. INSTALLED_APPS设置 INSTALLED_APPS = ( # ... 'dj_pagination', ) #2. middleware设置 MIDDLEWARE = ( # ... 'dj_pagination.middleware.PaginationMiddleware', ) #Django <1.10. 是 MIDDLEWARE_CLASSES 设置选项 #3. TEMPLATE_CONTEXT_PROCESSORS: #添加这些设置。 ("django.core.context_processors.auth", "django.core.context_processors.debug", "django.core.context_processors.i18n", "django.core.context_processors.media", "django.core.context_processors.request") #4. 前端设置在模板的顶部添加此行以加载分页标签: { % load pagination_tags %} # 添加要分页处理的数据 { % autopaginate object_list %} # 每个页面默认的20个,可指定每页结果数量。 #{ % autopaginate object_list 10 %} #下面可以for循环遍历object_list 显示数据 ...... #5.要显示当前页面和可用页面,使用paginate包含标记 #在循环结束后放置即可。 { % paginate %}
-
- 以上就可以简单实现基础分页。
- 3.1 自定义分页模板
/templates/paginatioin/pagination.html,是你的模板位置
默认使用pagination/pagination.html
{% autopaginate posts pagesize %}
{% paginate using "/templates/paginatioin/pagination.html," %} -
3.2 同个模板中多次使用分页
你可以多次使用autopaginate/paginate,需要注意的是你必须在使用paginate前使用autopaginate.
3.3 其他设置
PAGINATION_INVALID_PAGE_RAISES_404
对应页码无效的页码是抛出404错误(True)还是不显示对象(False 默认).
PAGINATION_DISPLAY_PAGE_LINKS
如果设置为False,分页结果为单页则不将显示页码。默认为True, 单页也显示页码。
PAGINATION_PREVIOUS_LINK_DECORATOR
'上一页'链接的HTML内容前缀,默认为‹‹
也就是<<
PAGINATION_NEXT_LINK_DECORATOR
'下一页'链接的HTML内容前缀,默认为››
也就是>>
PAGINATION_DISPLAY_DISABLED_PREVIOUS_LINK
如果设置为False,如果没有上一页则显示上一页链接。默认为False。
PAGINATION_DISPLAY_DISABLED_NEXT_LINK
如果设置为False,如果没有下一页则显示下一页链接。默认为False。
PAGINATION_DISABLE_LINK_FOR_FIRST_PAGE
如果设置为False,第一页将?page=1
显示分页的链接后缀,否则(True)将被忽略。默认为True。