Не могу не подумать, что число нажатий клавиш, необходимых для выполнения запроса в 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 между файлами кода. Недостатком является то, что все мои занятия связаны с определенной сессией, но я не могу придумать ни одной ситуации, в которой я хотел бы что-то другое. Я пытаюсь придумать причины, почему я не видел такого подхода раньше (кроме моей неопытности) ...