首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何通过python dict更新sqlalchemy orm对象

如何通过python dict更新sqlalchemy orm对象
EN

Stack Overflow用户
提问于 2019-04-15 02:59:02
回答 2查看 0关注 0票数 0

dict的关键名称映射到sqlalchemy对象attrs

例如:

代码语言:javascript
复制
class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(String)
    fullname = Column(String)
    password = Column(String)

可以从id = 3 {name: "diana"}或id = 15更新,{name: "marchel", fullname: "richie marchel"}

EN

回答 2

Stack Overflow用户

发布于 2019-04-15 11:23:16

根据您的用例(如果您不需要验证或推断模型中的任何内容),您可以使用filter_by id来获取特定行来保存一个数据库调用,并使用您最初想要的字典更新它。

代码语言:javascript
复制
user_query = session.query(User).filter_by(id=someid)
data_to_update = dict(name="marchel", fullname="richie marchel")

user_query.update(data_to_update)

您可能还需要用synchronize_session=Falseupdate调用中添加关键字参数,具体取决于会话类型(如果使用scoped_session):

代码语言:javascript
复制
user_query.update(data_to_update, synchronize_session=False)
票数 0
EN

Stack Overflow用户

发布于 2019-04-15 12:31:52

您可以使用setattr()动态更新现有SQLAlchemy对象的属性:

代码语言:javascript
复制
user = session.query(User).get(someid)

for key, value in yourdict.iteritems():
    setattr(user, key, value)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档