tornado多级查询

offset = int(req.get('page_start', '0')) * int(req.get('page_size', '10'))
limit = int(req.get('page_size', '10'))
project_id = req.get('project_id')
groups_id = req.get('groups_id')
controller_id = req.get('controller_id')
where_query = tuple()
if project_id is not None:
where_query += ZdLamppost.project == project_id,
if groups_id is not None:
where_query += ZdLamppost.groups == groups_id,
if controller_id is not None:
where_query += ZdLamppost.controller == controller_id,
lamppost_query = ZdLamppost.select()
if len(where_query) != 0:
lamppost_query = ZdLamppost.select().where(*where_query)
led_query = ZdLed.select().where(ZdLed.lamppost_id.in_(lamppost_query))
total_count = await self.application.objects.count(led_query)
leds = await self.application.objects.execute(led_query.limit(limit).offset(offset))
posted @ 2019-11-11 16:43  关美丽  阅读(181)  评论(0编辑  收藏  举报