Flask-SQLAlchemy过滤器和运算符

时间:2014-02-10 10:14:28

标签: python sqlalchemy flask operators flask-sqlalchemy

Flask-SQLAlchemy提供了筛选查询的选项。您可以通过多种方式筛选查询 - Flask-SQLAlchemy文档提供的示例:

User.query.filter_by(username='peter') # Returns all users named 'peter'
User.query.filter(User.email.endswith('@example.com')) # Returns all users with emails ending in '@example.com'

我还发现这是一对多的关系:

User.query.filter(User.addresses.any(address=address)) # Returns all users who have a particular address listed as one of their addresses

问题:

  • 有谁知道实际可以使用哪些过滤器?我在文档中的任何地方都找不到过滤器列表,这使得查询数据库变得相当困难。
  • 特别是,我会使用什么过滤器来检查用户的电子邮件是否包含在特定的一组电子邮件地址中?

2 个答案:

答案 0 :(得分:18)

有关过滤器列表,请选中SQLAlchemy documentation

  
    

我会使用什么过滤器来检查用户的电子邮件是否包含在特定的一组电子邮件地址中?

  

列在查询中使用.in_()方法。如下所示:

res = User.query.filter(User.email.in_(('x1@dom1.com', 'x2@dom2.com')))

Here您可以找到表达式的列方法列表。

答案 1 :(得分:0)