python sqlalchemy 数据库操作
1.数据库的更新
models.User.query.filter(models.User.id ==2).update({models.User.username:'a'})
db.session.commit()
##注意后面的update不能用等号,不支持
#######后面需要加db.session.commit(),否则数据库不会更新
需要把某个数据置为空的时候就
models.User.query.filter(models.User.id ==2).update({models.User.username:None})
db.session.commit()
2.数据删除
db.session.delete(u)
db.session.commit()
3.一对多的操作
class User(db.Model): id = db.Column(db.Integer, primary_key = True) name = db.Column(db.String(64), index = True, unique = True) age = db.Column(db.Integer, index = True, unique = True) #一个User对应多个Test class Test(db.Model): id = db.Column(db.Integer, primary_key = True) test_name = db.Column(db.Integer) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) user = db.relationship('User', backref=db.backref('tests', lazy='dynamic'))
#tests操作能够通过User查询对应的Test
u = models.User.query.filter(models.User.name == 'lyn').first() uu = u.test.all() ##uu就是User中的lyn对应的Test
4 取前三条数据 使用query中的limit语句
d = models.User.query.limit(3)
5.分页操作 使用limit语句和offset语句结合
limit(a)offset(b) 从第b+1个不为空的数开始取a个数,这样就可以完成分页操作
u = models.User.query.limit(3).offset(1)
#all是2 3 4 5 u是3 4 5
浙公网安备 33010602011771号