flask SQLAlchemy query.filter_by 常用操作符


常用的filter操作符

下面的這些操作符可以應用在filter函數中

  • equals:
query.filter(User.name == 'ed') 
  • not equals:
query.filter(User.name != 'ed') 
  • LIKE:
query.filter(User.name.like('%ed%')) 
  • IN:
query.filter(User.name.in_(['ed', 'wendy', 'jack'])) # works with query objects too: query.filter(User.name.in_( session.query(User.name).filter(User.name.like('%ed%')) )) 
  • NOT IN:
query.filter(~User.name.in_(['ed', 'wendy', 'jack'])) 
  • IS NULL:
query.filter(User.name == None)

# alternatively, if pep8/linters are a concern query.filter(User.name.is_(None)) 
  • IS NOT NULL:
query.filter(User.name != None)

# alternatively, if pep8/linters are a concern query.filter(User.name.isnot(None)) 
  • AND:
# use and_() from sqlalchemy import and_ query.filter(and_(User.name == 'ed', User.fullname == 'Ed Jones')) # or send multiple expressions to .filter() query.filter(User.name == 'ed', User.fullname == 'Ed Jones') # or chain multiple filter()/filter_by() calls query.filter(User.name == 'ed').filter(User.fullname == 'Ed Jones') 
  • OR:
from sqlalchemy import or_
query.filter(or_(User.name == 'ed', User.name == 'wendy')) 
  • MATCH:
query.filter(User.name.match('wendy'))


作者:治部少輔
鏈接:https://www.jianshu.com/p/8d085e2f2657
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM