【发布时间】:2017-10-11 03:11:51
【问题描述】:
一个简单的查询如下所示
User.query.filter(User.name == 'admin')
在我的代码中,我需要检查正在传递的参数,然后根据参数从数据库中过滤结果。
例如,如果 User 表包含用户名、位置和电子邮件等列,则请求参数可以包含其中之一,也可以包含列的组合。我不想如下所示检查每个参数并链接过滤器,而是创建一个动态查询字符串,该字符串可以传递给一个过滤器并可以返回结果。我想创建一个单独的函数来评估所有参数并生成一个查询字符串。生成查询字符串后,我可以传递该查询字符串对象并获得所需的结果。我想避免使用 RAW SQL 查询,因为它违背了使用 ORM 的目的。
if location:
User.query.filter(User.name == 'admin', User.location == location)
elif email:
User.query.filter(User.email == email)
【问题讨论】:
标签: python mysql flask-sqlalchemy