django的基于光标的分页

django-cursor-pagination-dtkav的Python项目详细描述


django光标分页[![构建状态](https://travis-ci.org/photocrowd/django-cursor-pagination.svg?branch=master)(https://travis ci.org/photocrowd/django cursor分页)
=============

=>这是一个fork
============
这是django cursor分页的fork,您可能不想使用它。
请改用photocrowd/django游标分页。


original readme
===============
django的基于游标的分页系统。我们没有按页数引用特定的
页,而是根据其
顺序值为queryset中的每个项提供一个游标。然后,通过在*当前最后一个项目的光标之后请求记录
*来请求后续记录。类似地,我们可以在第一个项的光标之前请求
记录*来导航到
列表。


与传统分页相比,这种方法有两个主要优点。首先,它可以确保当新数据写入表中时,记录不能移动到下一页。其次,查询数据库要快得多,因为我们没有使用非常大的偏移量值。

数据
必须按数据库字段排序,这些字段在所有记录中都是唯一的。
典型的用例将按创建时间戳和id排序。获取数据的可能页面范围也更加困难。

[这篇文章](http://cra.mr/2011/03/08/building-cursors-for-the-disks-api)作者david
cramer,以及[relay
graphql]的连接规范(https://facebook.github.io/relay/graphql/connections.htm)。
实现的大部分灵感来自于[django rest framework的游标
分页(pagination)。(https://github.com/tomchristie/django rest framework/blob/9b56dda91850a07cfaecbe972e0f586434b965c3/rest戋framework/pagination.py戋l407-l707)。
discs方法和这里使用的方法的主要区别在于完全确定,而不是使用偏移量。



=post.objects.all()
页大小=10
页标识符=cursorpaginator(qs,ordering=('-created','-id'))
页=页标识符.page(first=页大小,after=after)
数据={
对象:[页中p的序列化页(p)],
“有下一页”:page.has下一页,
“最后一个游标”:paginator.cursor(page[-1])
}
返回数据
````

字段,则它们都必须具有相同的
方向
-在sqlite中不支持多个排序字段,因为它不支持
元组比较。
-如果给定了游标,但它没有引用有效对象,
`has\u previous`(用于'after`)或'has\u next`(用于'before`)的值将始终返回
`true`.




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

推荐PyPI第三方库


热门话题
java应用程序不是在Eclipse中运行,而是在命令行中运行   swing Java图形组件问题。似乎找不到错误   我需要键盘。close();让代码正常工作?   Springboot中的java HttpSession   抽象语法树我想添加一个语句。我试图解析它,java解析器异常被抛出。如何克服它?   java Hibernate:清理会话   具有不连续子集的java划分问题   java正则表达式查找最后一个冒号后的字符串   java从SpringShell执行OS命令   Java扫描器字符串输入   java字符串索引越界异常(charAt)   java执行器服务终止被卡住   Springockito没有继承java@ContextConfiguration   java如何为一个servlet映射多个url   java安卓获取命令的stderr   java生成类型。表:数据库中的大数字   安卓 Getter Setter返回NothingJava