站内公告:

我们的虚拟社区正式开通了

Main Menu

SQLAlchemy insert 和 update

作者 jvip_chen, 2022-4月-10 08:25 下午

« 上一篇主题 - 下一篇主题 »

jvip_chen

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

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()