1.查询:
查询所有: 模型类.query.all() ~ select * from user;
如果有条件的查询:
模型类.query.filter_by(字段名 = 值) ~ select * from user where 字段=值;
模型类.query.filter_by(字段名 = 值).first() ~ select * from user where 字段=值 limit…;
select * from user where age>17 and gender=‘男’;
select * from user where username like ‘zhang%’;
select * from user where rdatetime> xxx and rdatetime < xxx;
模型类.query.filter() 里面是布尔的条件 模型类.query.filter(模型名.字段名 == 值)
模型类.query.filter_by() 里面是一个等值 模型类.query.filter_by(字段名 = 值)
***** 模型类.query.filter() ******
- 模型类.query.filter().all() -----> 列表
- 模型类.query.filter().first() ----->对象
3.User.query.filter(User.username.endswith(‘z’)).all() select * from user where username like ‘%z’;
User.query.filter(User.username.startswith(‘z’)).all() # select * from user where username like ‘z%’;
User.query.filter(User.username.contains(‘z’)).all() # select * from user where username like ‘%z%’;
and or order_by like …
总结:
-
User.query.all() 所有
-
User.query.get(pk) 一个
-
User.query.filter() * ???????
-
User.query.filter_by()
如果要检索的字段是字符串(varchar,db.String):
User.username.startswith(’’)
User.username.endswith(’’)
User.username.contains(’’)
User.username.like(’’)
User.username.in_([’’,’’,’’])
User.username == ‘zzz’
如果要检索的字段是整型或者日期类型:
User.age.lt(18)
User.rdatetime.gt(’…’)
User.age.le(18)
User.age.ge(18)
User.age.between(15,30)多个条件一起检索: and_, or_
非的条件: not_排序:order_by()
获取指定数量: limit() offset() -
User.query.filter_by()
删除:
两种删除:
1。逻辑删除(定义数据库中的表的时候,添加一个字段isdelete,通过此字段控制是否删除)
id = request.args.get(id)
user = User.query.get(id)
user.isdelete = True
db.session.commit()
2。物理删除(彻底从数据库中删掉)
id = request.args.get(id)
user = User.query.get(id)
db.session.delete(user)
db.session.commit()
更新:
id = request.args.get(id)
user = User.query.get(id)
修改对象的属性
user.username= xxxx
user.phone =xxxx
提交更改
db.session.commit()