我正在开发一个用python和Alchemy制作的API
我正在寻找一种优雅的方法,一步一步地准备我的查询
今天,我的代码可以正常工作,但对我来说非常重要,因为有许多重复的内容:
if filteron is None:
if orderby == 'config':
if order == 'DESC':
job = JobFull.query.order_by(JobFull.config_id.desc()).limit(limit).all()
else:
job = JobFull.query.order_by(JobFull.config_id.asc()).limit(limit).all()
elif orderby == 'crawler':
if order == 'DESC':
job = JobFull.query.order_by(JobFull.crawler_id.desc()).limit(limit).all()
else:
job = JobFull.query.order_by(JobFull.crawler_id.asc()).limit(limit).all()
elif orderby == 'site':
if order == 'DESC':
job = JobFull.query.order_by(JobFull.site_id.desc()).limit(limit).all()
else:
job = JobFull.query.order_by(JobFull.site_id.asc()).limit(limit).all()
else:
if order == 'DESC':
job = JobFull.query.order_by(JobFull.job_id.desc()).limit(limit).all()
else:
job = JobFull.query.order_by(JobFull.job_id.asc()).limit(limit).all()
我想做的是准备我的查询,如:
if filteron is None:
if order == 'DESC':
job = job.query.orderby.desc()
if orderby == 'config':
job = job.query.orderby.(JobFull.config_id)
if limit is not None:
job = job.limit(limit)
是否有一种优雅的方法可以做到这一点,或者如果噩梦发生,我是否需要继续我的
问候,
将逻辑外推到一个可重用函数中,并与
getattr
函数结合使用相关问题 更多 >
编程相关推荐