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をインポートする必要がないことを意味します。欠点は、すべてのクラスが特定のセッションに縛られていることです。しかし、私は何か違うことを望む状況は考えられません。私は前に(私の経験不足を除いて)このアプローチを見ていない理由を考えようとしています...
マイクバイヤーの引用文「SQLAlchemyはフレームワークではありません...それはツールキットです」では概念的な問題をまとめているようですが、Elixirは上記のとおりです。ありがとう。 – mattjbray