SQLAlchemy对数据基本操作
先前在这篇文章有些创建操作介绍 Mysql安装和操作(flask)
以下为读《深入理解Flask》
对各种数据储存策略有四种基本功能类型:添加,读取,修改,删除
增加数据
读取数据
读取数据也许是操作种类比较复杂的功能类型
一个简单的例子
>>> users=User.query.all() >>> users [<User 'test'>]
一些常用语句(可以链式调用)
User.query.all ##查询User模型在数据库中所有行 User.query.h2mit(5).all ##指定行数返回 User.query.first() ##返回一行数据 User.query.filter(User.id == 2).first().name User.query.get(2).name ##以主键获取,等效于上句 Post.query.paginate(2,10) ##返回2-10的对象,这个设计为了分页 User.query.filter_by(username="test").all() ##精确过滤 User.query.filter(User.id>1).all() ##user.id大于1的 ##filter参数接受任何python表达式 User.query.order_by(User.username).all() ##正向排序 User.query.order_by(User.username.desc()).all() ##反向排序 ##order_by控制排序方式
paginate-Add:假如命令page=Post.query.paginate(2,10)
page.items ##返回这一页包含数据 page.page ##页数 page.pages ##总页数 page.has_prev OR page.has_next ##上一页或者下一页是否有数据
filter-Add: 一些复杂的SQL语句也可以转化
User.query.filter( User.username.in_(['test','test1']), User.password_hash==None ).first() User.query.filter( not_(User.password_hash==None) ).first() ##拥有密码的user User.query.filter( or_(not_(User.password_hash==None),User.id>1) ).first() ##组合调用
SQLAlchemy中与None的比较会被当成与NULL比较
修改数据
调用update方法更新数据
>>> User.query.filter_by(username="test").update({ 'password_hash':'test' }) 1 >>> db.session.commit()
删除数据
>>> user=User.query.filter_by(username="test").first() >>> db.session.delete(user) >>> db.session.commit()
相关推荐
liuweiq 2020-06-14
emmm00 2020-06-14
lt云飞扬gt 2020-05-29
朱建伟 2020-05-14
猛禽的编程艺术 2020-05-06
苦咖啡flask 2020-05-04
dreamhua 2020-04-30
dreamhua 2020-04-30
tanrong 2020-04-30
xuanlvhaoshao 2020-04-26
tanrong 2020-04-18
Danialzhou 2020-04-11
happinessaflower 2020-03-01
xiaoxiangyu 2020-02-23
喝绿茶的猫 2020-01-18
疯狂老司机 2020-01-10
liuyang000 2020-01-08
Lingforme 2020-01-08