官方文档:

​http://www.pythondoc.com/flask-sqlalchemy/quickstart.html​

常用的SQLAlchemy查询过滤器

常用操作-增删查改_数据

常用的SQLAlchemy查询执行器

常用操作-增删查改_主键_02

eg:

表定义:

class Users(Base):
__tablename__ = 'user'
id = Column(Integer, primary_key=True)
name= Column(String(50), default='姓名')

增:

# 创建新User对象
obj1 = Users(id=1,name="alex1")

# 添加一个对象:
session.add(obj1)

# 提交即保存到数据库:
session.commit()

#添加多个对象

session.add_all([

Users(name="hc"), Users(name="alex"), Hosts(name="c1.com"), ])

session.commit()

查:

查询有两种方式filter 、 filter_by

eg:

#  查询名字等于wang的所有user
User.query.filter_by(name='wang').all()

# 查询名字等于wang的第一个user
User.query.filter_by(name='wang').first()

# 返回名字结尾字符为g的所有数据
User.query.filter(User.name.endswith('g')).all()

# 主键查询
User.query.get(2) #id为2的数据,id为主键

#逻辑 非
# 名字不等于wang的所有数据
User.query.filter(User.name!='wang').all()

# and
User.query.filter(and_(User.name!='wang',User.email.endswith('163.com'))).all()

# 或
User.query.filter(or_(User.name!='wang',User.email.endswith('163.com'))).all()

#取反
User.query.filter(not_(User.name=='chen')).all()


# 或者用session操作
db.session.query(User).all()
# 查询部分字段
db.session.query(User.id).all()

删:

#  delete
user = User.query.first()
db.session.delete(user)
db.session.commit()

更新:

# 修改查出来的对象属性
user = User.query.first()
user.name = 'dong'
db.session.commit()

# 使用update
User.query.filter_by(name='zhang').update({'name':'li'})