实验性ORM查询对象
项目描述
摘要
实验性ORM查询对象
目标是使RQL请求构建更加简单,并且完全使用Pythonic语法。
它借鉴了大量的SQLAlchemy ORM。
示例
无过滤的基本查询
- ::
CWUser = vreg[‘etypes’].etype_class(‘CWUser’) CWGroup = vreg[‘etypes’].etype_class(‘CWGroup’)
q = req.query(CWUser) assert q.torql(), (“Any X WHERE X is CWUser”, {})
q.all()
与属性懒加载相同
q = req.query(CWUser).eagerload('login')
带过滤
q = req.query(CWUser) q = q.filter(CWUser.in_group.filter(CWGroup.name == u'managers'))
更复杂的过滤
import datetime as dt q = req.query(CWUser) q = q.filter( (CWUser.creation_date >= dt.date.now() - dt.timedelta(30)) & CWUser.in_group.filter( (CWGroup.name == u"users")))