gpt4 book ai didi

python - 通过 declaritive_base 类方法检索 SQLAlchemy 查询对象

转载 作者:行者123 更新时间:2023-11-28 18:54:06 24 4
gpt4 key购买 nike

我不禁认为在 SQLAlchemy 中执行查询所需的击键次数有点偏高。

DBSession.query(User).filter(...).first()

这样做有什么问题吗?

DBSession = scoped_session(sessionmaker())

class BaseWithDBSession(object):
def delete(self):
DBSession.delete(self)

@classmethod
def query(cls):
return DBSession.query(cls)


Base = declarative_base(cls=BaseWithDBSession)

class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
...

user = User.query().filter(User.id==1).one()
user.delete()

这种方法对我来说似乎更简洁,这也意味着我不必在代码文件之间导入 DBSession。缺点是我所有的类(class)都与特定类(class)相关联,但我想不出任何不同的情况。我在想我以前没有见过这种方法的原因(除了我缺乏经验)......

最佳答案

好吧,有很多方法可以做这种事情 - 请参阅 Mike Bayer 关于 Magic, a "new" ORM 的半开玩笑的帖子. SQLAlchemy 将自己定位为一个工具包而不是一个框架,这样就可以根据不同场景的需要有不同的使用方式。比如会出现单session不够用的场景。

在 SQLAlchemy 之上还有第三方声明层——例如Elixir .它提供了一种稍微不同的做事方式。

关于python - 通过 declaritive_base 类方法检索 SQLAlchemy 查询对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6693541/

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