转载地址:https://blog.csdn.net/longting_/article/details/80658105
1.增加数据(就相当于增加一个实例对象)
user1 = User(name='long',email='[email protected]',password='3456789',role_id=1)
db.session.add(user1)
db.session.commit()
2.修改数据
修改用户表里面的name为long的姓名为:fang
首先查询到名为long的这个用户
user1 = User.query.filter_by(name='long').first()
赋值/修改
user1.name = 'fang'
提交
db.session.commit()
3.先查询删除
user1 = User.query.filter_by(name='fang').first()
db.session.delete(user1)
db.session.commit()
4.查询
1.查询所有用户数据
User.query.all()
2.查询有多少个用户
User.query.count()
3.查询第1个用户
User.query.first()
4.查询id为4的用户[3种方式]
(1)User.query.get(4)
(2)User.query.filter_by(id=4).first()
(3)User.query.filter(User.id==4).first()
5.查询名字结尾字符为g的所有数据[开始/包含]
User.query.filter(User.name.endswith('g')).all() --[User:wang, User:zhang, User:tang]
包含:
User.query.filter(User.name.contains('g')).all() --[<User 1>, <User 2>, <User 5>]
获取第二个对象的名字:
list = User.query.filter(User.name.contains('g')).all()
list[1].name
6.查询名字不等于wang的所有数据[2种方式]
(1)!=: User.query.filter(User.name!='wang').all()
(2)not:User.query.filter(not(User.name=='wang')).all()
7.查询名字和邮箱都以 li 开头的所有数据[2种方式]
(1)and: User.query.filter(and(User.name.startswith('li'),User.email.startswith('li'))).all()
(2)不需要and_:User.query.filter(User.name.startswith('li'),User.email.startswith('li')).all()
8.查询password是 123456 或者 email 以 itheima.com 结尾的所有数据
User.query.filter(or_(User.password=='123456',User.email.endswith('itheima.com'))).all()
9.查询id为 [1, 3, 5, 7, 9] 的用户列表
User.query.filter(User.id.in_([1,3,5,7,9])).all()
10.查询name为liu的角色数据(重要)
User.query.filter(User.name=='liu').first().role.name
11.查询所有用户数据,并以邮箱排序
User.query.order_by('email').all()
12.每页3个,查询第2页的数据
User.query.paginate(2,3,False).items 查询数据
User.query.paginate(2,3,False).page ---当前页
User.query.paginate(2,3,False).pages ---总页数