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

 

posted @ 2017-01-28 10:28  lyn流光  阅读(346)  评论(0)    收藏  举报