sqlalchemy和flask-sqlalchemy的几种分页方法
2018-06-18 02:21:45来源:未知 阅读 ()
sqlalchemy中使用query查询,而flask-sqlalchemy中使用basequery查询,他们是子类与父类的关系
假设 page_index=1,page_size=10;所有分页查询不可以再跟first(),all()等
1.用offset()设置索引偏移量,limit()限制取出量
db.session.query(User.name).filter(User.email.like('%'+email+'%')).limit(page_size).offset((page_index-1)*page_size) #filter语句后面可以跟order_by语句
2.用slice(偏移量,取出量)函数
db.session.query(User.name).filter(User.email.like('%'+email+'%')).slice((page_index - 1) * page_size, page_index * page_size) #filter语句后面可以跟order_by语句
注释:此方法和第一种相同的效果。
因为:由一下内部方法可知,slice()函数第一个属性就是offset()函数值,第二个属性就是limit()函数值
@_generative(_no_statement_condition) def slice(self, start, stop): """apply LIMIT/OFFSET to the ``Query`` based on a " "range and return the newly resulting ``Query``.""" if start is not None and stop is not None: self._offset = (self._offset or 0) + start self._limit = stop - start elif start is None and stop is not None: self._limit = stop elif start is not None and stop is None: self._offset = (self._offset or 0) + start if self._offset == 0: self._offset = None @_generative(_no_statement_condition) def limit(self, limit): """Apply a ``LIMIT`` to the query and return the newly resulting ``Query``. """ self._limit = limit @_generative(_no_statement_condition) def offset(self, offset): """Apply an ``OFFSET`` to the query and return the newly resulting ``Query``. """ self._offset = offset
3.用paginate(偏移量,取出量)函数,用于BaseQuery
user_obj=User.query.filter(User.email.like('%'+email+'%')).paginate(int(page_index), int(page_size),False) #遍历时要加上items object_list =user_obj.items
4.filter中使用limit
db.session.query(User.name).filter(User.email.like('%'+email+'%') and limit (page_index - 1) * page_size, page_size) #此处不能再跟order_by语句,否则报错
http://www.cnblogs.com/rgcLOVEyaya/p/RGC_LOVE_YAYA_350days.html
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- SQLAlchemy简介 2019-07-24
- 几种翻转类型批量处理图片 2019-05-13
- 列表逆向排列的几种实现形式 2019-04-11
- 用Python复制文件的九种方法!你知道哪几种? 2019-03-13
- flask-sqlalchemy组件 2019-01-01
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash