常用操作-增删查改
原创
©著作权归作者所有:来自51CTO博客作者honeyR的原创作品,请联系作者获取转载授权,否则将追究法律责任
官方文档:
http://www.pythondoc.com/flask-sqlalchemy/quickstart.html
常用的SQLAlchemy查询过滤器
常用的SQLAlchemy查询执行器
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'})