sqlalchemy orm的分页器
SQLAlchemy-Paginator的Python项目详细描述
sqlalchemy分页器
此模块帮助您通过分页来管理大数据。
这个模块是如何工作的?
此模块sqlalchemy_paginator.Paginator接受一个sqlalchemy查询-例如:Session.query(MyModel),在调用特定页码的页时,它将只从数据库中提取所需的记录,而不是提取所有记录。
该类还将优化查询,以便根据给定的查询集从数据库中获取总记录数。优化将仅应用于将用于获取总记录数的查询。您还可以在可选的查询集合参数中提供单独的查询,以获取记录总数。
使用量
您可以在python脚本代码和基于web的应用程序代码中使用这个分页器模块。
example1
> from sqlalchemy_paginator import Paginator > query = session.query(MyModel) > paginator = Paginator(query, 5) > for page in paginator: > print "page number of current page in iterator", page.number > print "this is a list that contains the records of current page", page.object_list
example2
> from sqlalchemy_paginator import Paginator > query = session.query(MyModel) > paginator = Paginator(query, 5) > page = paginator.page(page_number) > print "to get total number of records against given query", page.paginator.count > print "to get total number of pages", page.paginator.total_pages > print "to get range of pages in list", page.paginator.pages_range > print "to get index of the first object on this page", page.start_index > print "to get index of the last object on this page", page.end_index > if page.has_previous(): > print "to get previous page number", page.previous_page_number > if page.has_next(): > print "to next previous page number", page.next_page_number
如何安装?
当pip可用时,可以从pypi下载发行版并在一步内安装
> pip install SQLAlchemy-Paginator
或者您可以使用easy_install
> easy_install SQLAlchemy-Paginator
您可以在sqlalchemy_paginator/paginator.py模块中找到更多文档,并在该python模块的tests/sqlalchemy_paginator_tests.py文件中找到完整的示例。