背景
之前文章有写如何在python中使用orm形式操作数据python中orm方式操作mysql,在项目中用到了,接下来就遇到各种问题,跟大家分享一下。
实例
- 如何实现排序
- 如何汇总
- 如何字段自增
- 如何实现分页
如何实现排序
Session.query(User).filter_by(id=2).order_by(User.id.desc()).all()
如何汇总
Session.query(User).filter_by(User.name.like="%zhang%").count()
如何字段自增
Session.query(User).filter_by(id=2).update({"age": User.age + 1})
如何实现分页
start = 10
stop = 20
Session.query(User).filter_by(sex=1).slice(start, stop).all()
思路
当多进程跑的时候,需要先获取记录总数,然后除以进程总数,获得每个进程的数量,贴上部分代码
total = self.orm_session.query(kwfpKeyword).filter_by(level=level, status=0).count()
limit_cnt = int(total / process_num)
kw_list = self.orm_session.query(kwfpKeyword).filter_by(level=level, status=0).order_by(kwfpKeyword.id.asc()).slice(self.process_num * limit_cnt, (self.process_num + 1) * limit_cnt).all()