文章内容

2018/12/17 21:47:36,作 者: 黄兵

SQLAlchemy insert 和 update

在SQLAlchemy,updateinsert的写法很像,但是又有区别,下面看看代码:

insert操作代码:

msg_count = db.session.query(sqlalchemy.func.count(SMS_Receive.id))\
            .filter(and_(SMS_Receive.IsShow == True, SMS_Receive.PhoneNumber_id == number))\
            .scalar()
sms_count_info = SMSCount(PhoneNumber_id=number, SMS_Count=msg_count)
db.session.add(sms_count_info)
db.session.commit()

之后是update代码:

get_sms_count = SMSCount.query.filter_by(PhoneNumber_id=number).first()
get_sms_count.SMS_Count+=1
get_sms_count.PhoneNumber_id=number
db.session.commit()

可以看到在insert里面先加入到session里面才提交,而insert则是先查询出来之后更新才提交。

看看stack overflow上面的update一些回答写法:

admin = User.query.filter_by(username='admin').first()
admin.email = 'my_new_email@example.com'
db.session.commit()

user = User.query.get(5)
user.name = 'New Name'
db.session.commit()


参考资料:Flask-SQLalchemy update a row's information


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - SQLAlchemy insert 和 update

分享到:

发表评论

评论列表