1. equal    2. not equal  3. like, ilike  4.in  5. not in

6. is null  7. is not null  8. and  9. or

#### 如果想查看orm底层查询sql可以在filter函数后面不写人物的函数如:

articles = session.query(Article).filter(Article.title != 'title0')
 # coding:utf-8
# Author: liangjun.chen from datetime import date
from datetime import datetime
from datetime import time
from random import random
from sqlalchemy import create_engine, Column, Integer, String, Float, Text, and_, or_ from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker HOSTNAME = '127.0.0.1'
PORT = 3306
DATABASE = 'sqlalchemy_first'
USERNAME = 'root'
PASSWORD = '' DB_URI = 'mysql+pymysql://{username}:{password}@{host}:{port}/{dbname}?charset=utf8'.format(
username=USERNAME, password=PASSWORD, host=HOSTNAME, port=PORT, dbname=DATABASE
)
engine = create_engine(DB_URI)
Base = declarative_base(engine)
Session = sessionmaker(engine)
session = Session() class Article(Base):
__tablename__ = 'article'
id = Column(Integer, primary_key=True, autoincrement=True)
title = Column(String(50), nullable=False)
price = Column(Float, nullable=False)
content = Column(Text) def __repr__(self):
return "Article<title: {}, price: {}>".format(self.title, self.price) # 1. equal
article = session.query(Article).filter(Article.id == 1).first()
print article # 2. not equal
articles = session.query(Article).filter(Article.title != 'title0').all()
print articles # 3. like, ilike->不区分大小写
articles = session.query(Article).filter(Article.title.like('title%')).all()
print articles # 4. in
print '-' * 20
articles = session.query(Article).filter(Article.title.in_(['title1', 'title2'])).all()
print articles # 5. not in
print '-' * 20
articles = session.query(Article).filter(~Article.title.in_(['title2', 'title1'])).all()
articles2 = session.query(Article).filter(Article.title.notin_(['title2', 'title1'])).all() print articles
print articles2 # 6. is null
print '-' * 20
articles = session.query(Article).filter(Article.content == None).all()
print articles # 7. is not null
print '-' * 20
articles = session.query(Article).filter(Article.content != None).all()
print articles # 8. and
print '-' * 20
articles = session.query(Article).filter(Article.title == 'title0', Article.content == 'test').all()
articles_2 = session.query(Article).filter(and_(Article.title == 'title0', Article.content == 'test')).all()
print articles
print articles_2 # 9. or
print '-' * 20
articles = session.query(Article).filter(or_(Article.title == 'title1', Article.content == 'test')).all()
print articles

最新文章

  1. Ionic的跨域问题
  2. Media Queries详解
  3. A Simple MVVM Example[Forward]
  4. iOS 静态库和动态库的区别&amp;静态库的生成
  5. python3.3中使用tornado.options.parse_config_file的时候,在windows下conf为utf-8时,报错的问题
  6. 1170: 非常男女(XCOJ 前缀和)
  7. java的深复制与浅复制
  8. 非root用户搭建hadoop伪分布式
  9. SpringMVC基础-@RequestMapping
  10. 并查集-HDU1232-畅通工程
  11. Codeforces Round #452 E. New Year and Old Subsequence
  12. CRM客户关系管理系统(九)
  13. async/await处理异步
  14. Android 开发 获取设备信息与App信息
  15. mysql 开发基础系列15 索引的设计和使用
  16. [NOIP2018]OI之旅的中转站
  17. 安装php后无法动态加载库
  18. MySQL Cluster 日常维护
  19. 配置Chrome Workspace功能
  20. Linux 上安装 Couchbase服务

热门文章

  1. 如何从一个1G的文件中找到你所需要的东西
  2. Paxos 学习总结
  3. docker教程之从一头雾水到不一头雾水(3)
  4. 自己定义控件三部曲视图篇(二)——FlowLayout自适应容器实现
  5. 解决Windows平台通过cURL上传APP到蒲公英pgyer平台时无法使用中文升级描述的问题
  6. SD--怎样增强是同一类出库单使用不同号码段
  7. DirectShow使用心得
  8. start with git
  9. Jlink升级_官网
  10. 将普通用户添加至sudoers列表