2
我不禁想到在SQLAlchemy中執行查詢所需的擊鍵次數有點偏高。通過declaritive_base類方法檢索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。缺點是我的所有課程都與特定的課程相關,但我想不出任何我想要什麼不同的情況。我試圖想出爲什麼我之前沒有看到過這種方法的原因(除了我的經驗不足之外)......
Mike Bayer的引用「SQLAlchemy不是一個框架......它是一個工具包」,似乎總結了我的概念問題,而Elixir完全按照上面所述。謝謝。 – mattjbray