gpt4 book ai didi

python - SQLAlchemy 是否与 Django 的 get_or_create 等效?

转载 作者:IT老高 更新时间:2023-10-28 20:29:25 24 4
gpt4 key购买 nike

如果它已经存在(基于提供的参数),我想从数据库中获取一个对象,如果不存在则创建它。

Django 的 get_or_create (或 source )这样做。 SQLAlchemy 中是否有等效的快捷方式?

我目前正在这样明确地写出来:

def get_or_create_instrument(session, serial_number):
instrument = session.query(Instrument).filter_by(serial_number=serial_number).first()
if instrument:
return instrument
else:
instrument = Instrument(serial_number)
session.add(instrument)
return instrument

最佳答案

按照@WoLpH的解决方案,这是对我有用的代码(简单版):

def get_or_create(session, model, **kwargs):
instance = session.query(model).filter_by(**kwargs).first()
if instance:
return instance
else:
instance = model(**kwargs)
session.add(instance)
session.commit()
return instance

有了这个,我可以获取或创建我模型的任何对象。

假设我的模型对象是:

class Country(Base):
__tablename__ = 'countries'
id = Column(Integer, primary_key=True)
name = Column(String, unique=True)

要获取或创建我的对象,我会写:

myCountry = get_or_create(session, Country, name=countryName)

关于python - SQLAlchemy 是否与 Django 的 get_or_create 等效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12153106/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com