要保存URL参数并获取格式页范围吗?这个包将额外的数据保存到django paginator。当url有参数时很有用。

django-paginator-plus的Python项目详细描述


Django Paginator Plus公司 ==

要保存URL参数并获取格式页范围吗?

这个包将额外的数据保存到django paginator。当url有参数时很有用。

如果您想得到下面这样的页面,那么使用requestPaginator。

Previous 1 … 2 3 4 5 … 3000 Next Previous 1 2 3 4 5 … 3000 Next 1 2 3 4 5 … 3000 Next

requestPaginator将给您一个列表来处理分页器逻辑。

[{‘current’: True, ‘clickable’: False, ‘url_params’: ‘/questions?a=1&page=1’, ‘text’: 1}, {‘current’: False, ‘clickable’: True, ‘url_params’: ‘/questions?a=1&page=2’, ‘text’: 2}, {‘current’: False, ‘clickable’: True, ‘url_params’: ‘/questions?a=1&page=3’, ‘text’: 3}, {‘current’: False, ‘clickable’: True, ‘url_params’: ‘/questions?a=1&page=4’, ‘text’: 4}, {‘current’: False, ‘clickable’: True, ‘url_params’: ‘/questions?a=1&page=5’, ‘text’: 5}, {‘current’: False, ‘clickable’: True, ‘url_params’: ‘/questions?a=1&page=6’, ‘text’: 6}, {‘current’: False, ‘clickable’: False, ‘url_params’: ‘’, ‘text’: ‘…’}, {‘current’: False, ‘clickable’: True, ‘url_params’: ‘/questions?a=1&page=54’, ‘text’: 54}, {‘current’: False, ‘clickable’: True, ‘url_params’: ‘/questions?a=1&page=2’, ‘text’: u’Next’}]

安装 -

pip install django-paginator-plus

文件 -

分页器 - 像django默认分页器一样,它重写页面范围和页面。

初始参数:

all Django Paginator params curr_page – paginator current page num. display_pages – if have 100 page, display_pages will only display the pages in page_range method.

重写方法或属性:

page_range
Default Django Paginator will return 1 to max page. [1..100] Here will use curr_page and display_pages to return the page_range. If max page is 100, display_pages is 5, curr_page is 10, the page_range will be [8, 9, 10, 11, 12]. This is useful when handler front end paginator(or you can use a js lib).
page
In default Django Paginator page is a method. Here page is a property, it use curr_page to return Default Django page.

请求分页器 -

如果您想让页面听起来像,那么使用requestPaginator。

Previous 1 … 2 3 4 5 … 3000 Next Previous 1 2 3 4 5 … 3000 Next 1 2 3 4 5 … 3000 Next

像paginator一样,但是需要一些额外的参数来获取querystring页面的参数范围。

page_params_range:将返回一个列表,每个元素是一个dict,具有这些参数:

current: is current page or not clickable: can clickable url_params: /questions?a=1&page=1 text: showing text

[{‘current’: True, ‘clickable’: False, ‘url_params’: ‘/questions?a=1&page=1’, ‘text’: 1}, {‘current’: False, ‘clickable’: True, ‘url_params’: ‘/questions?a=1&page=2’, ‘text’: 2}, {‘current’: False, ‘clickable’: True, ‘url_params’: ‘/questions?a=1&page=3’, ‘text’: 3}, {‘current’: False, ‘clickable’: True, ‘url_params’: ‘/questions?a=1&page=4’, ‘text’: 4}, {‘current’: False, ‘clickable’: True, ‘url_params’: ‘/questions?a=1&page=5’, ‘text’: 5}, {‘current’: False, ‘clickable’: True, ‘url_params’: ‘/questions?a=1&page=6’, ‘text’: 6}, {‘current’: False, ‘clickable’: False, ‘url_params’: ‘’, ‘text’: ‘…’}, {‘current’: False, ‘clickable’: True, ‘url_params’: ‘/questions?a=1&page=54’, ‘text’: 54}, {‘current’: False, ‘clickable’: True, ‘url_params’: ‘/questions?a=1&page=2’, ‘text’: u’Next’}]

简单用法 -

from django.contrib.auth.models import User from paginator_plus.paginator import Paginator

users = User.objects.all() print len(users) p = Paginator(users, per_page=2, curr_page=10) print p.page_range print

p1 = Paginator(users, per_page=2, curr_page=20, display_pages=5) print p1.page_range print

from django.http.request import HttpRequest, QueryDict

r = HttpRequest() r.path_info = ‘/questions’ r.GET = QueryDict(‘a=1’)

print print ‘=========================’ print

from paginator_plus.paginator import RequestPaginator rp = RequestPaginator(users, per_page=2, curr_page=20, display_pages=5, request=r) print print ‘rp = RequestPaginator(users, per_page=2, curr_page=20, display_pages=5, request=r)’ print rp.page_range print rp.page_params_range, print

rp1 = RequestPaginator(users, per_page=2, curr_page=20000, display_pages=5, request=r) print print ‘rp1 = RequestPaginator(users, per_page=2, curr_page=20000, display_pages=5, request=r)’ print rp1.page_range print rp.page_params_range, print

rp3 = RequestPaginator(users, per_page=2, curr_page=1, display_pages=5, request=r) print print ‘rp3 = RequestPaginator(users, per_page=2, curr_page=1, display_pages=5, request=r)’ print rp3.page_range print rp3.page_params_range, print

rp4 = RequestPaginator(users, per_page=2, curr_page=2, display_pages=5, request=r) print print ‘rp4 = RequestPaginator(users, per_page=2, curr_page=2, display_pages=5, request=r)’ print rp4.page_range print rp4.page_params_range, print

rp5 = RequestPaginator(users, per_page=2, curr_page=2, display_pages=5, request=r, show_prev=False, show_next=False) print print ‘rp5 = RequestPaginator(users, per_page=2, curr_page=2, display_pages=5, request=r, show_prev=False, show_next=False)’ print rp5.page_range print rp5.page_params_range, print

rp6 = RequestPaginator(users, per_page=2, curr_page=1, display_pages=6, request=r, auto_hide_prev=True) print print ‘rp6 = RequestPaginator(users, per_page=2, curr_page=1, display_pages=6, request=r, auto_hide_prev=True)’ print rp6.page_range print rp6.page_params_range, print

rp7 = RequestPaginator(users, per_page=2, curr_page=2, display_pages=7, request=r, auto_hide_prev=True) print print ‘rp7 = RequestPaginator(users, per_page=2, curr_page=2, display_pages=7, request=r, auto_hide_prev=True)’ print rp7.page_range print rp7.page_params_range, print

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在ArrayList中比较数字   java在Kotlin中使异步调用同步   让“Scala编程”junit示例在IntelliJ中工作的java问题   java Servlet侦听器未在ContextListener中设置属性   将Microsoft SQL Server数据库连接到我的Java项目   加载资源时出现java“需要注册工厂”异常   java如何使用POI检查excel中的重复记录?   java如何更改机器生成的代码   java如何确保重写的方法是同步的   用Spring编写Hibernate时的java XML奥秘   java管理mysql数据库中存储的用户权限   java如何运行。来自Javascript的jar方法   java我想在Web应用程序中进行身份验证&对桌面应用程序使用相同的凭据。我该怎么做?