SQLachemy更新数据库的两种方法(Query.updata或直接对象赋值方式)!

本文介绍了在数据库中更新用户密码的两种常见方法。第一种方法是使用Query对象的update函数进行更新,随后调用commit提交更改;第二种方法是先查询出目标用户,直接修改其password属性,再提交更改。文章详细解释了每种方法的实现步骤,并强调了在commit操作失败时进行回滚的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#第一种方法,使用Query中的updata函数更新,然后commit提交 

def updata_password(email,new_password):
    new_password_hash = generate_password_hash(new_password, method="sha256")
    try:
        #第一种方法,使用Query中的updata函数更新,然后commit提交
        User.query.filter_by(email=email).update({User.password:new_password_hash})
        db.session.commit()
    except Exception as e:
        # 加入数据库commit提交失败,必须回滚!!!
        db.session.rollback()
        raise e

#第二种方法,直接使用对象user.password赋值更新,然后commit提交 

def updata_password(email,new_password):
    new_password_hash = generate_password_hash(new_password, method="sha256")
    try:
        #第二种方法,直接使用对象user.password赋值更新,然后commit提交
        #先查询出要更新的用户
        user = User.query.filter_by(email=email).first_or_404() 
        #更新用户的数据
        user.password = new_password
        #最后提交到数据库
        db.session.commit()
    except Exception as e:
        # 加入数据库commit提交失败,必须回滚!!!
        db.session.rollback()
        raise e

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值