从 db sqlalchemy orm 更新现有行的方法

问题描述 投票:0回答:1

是否有函数从 db ex 更新数据:

user = User()
user.name = 'Jonh'

session.add(user)
session.commit()

session.foo(user)

print(user.id) # now we have id of user

ps:我正在寻找 foo() 函数

我尝试使用谷歌并在文档中搜索,但没有找到解决方案

python sql python-3.x sqlalchemy
1个回答
0
投票

不,不幸的是,没有任何现有方法可以实现您想要实现的目标。但是您可以通过更新对象“用户”及其身份(ID)来实现相同的目标:

from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine

engine = create_engine('sqlite:///users_database.db')
Session = sessionmaker(bind=engine)
session = Session()

class User(Base):
    __tablename__ = 'users_table'
    id = Column(Integer, primary_key=True)
    name = Column(String)

user = User(name='John')
session.add(user)
session.commit()

session.refresh(user)

print(user.id)

您可以使用内置的refresh()方法从您正在处理的数据库中重新加载对象状态。

© www.soinside.com 2019 - 2024. All rights reserved.