Sessionとsession
SQLAlchemyでscoped_session
を使った方法でわからなかったことの一つに、
>>> Session.query(ほにゃらら)
と
>>> session = Session() >>> session.query(ほにゃらら)
にどんな違いがあるのか気になっていました。
Session.remove
を行うまでずっと同じセッションを返し続けるという仕様ならなんで2通りあるのだろうと疑問でした。
答えは、公式ドキュメントにある通り、
>>> from sqlalchemy.orm import scoped_session >>> from sqlalchemy.orm import sessionmaker >>> session_factory = sessionmaker(bind=some_engine) >>> Session = scoped_session(session_factory) >>> # session = Session() >>> # print session.query(MyClass).all() >>> print Session.query(MyClass).all() # このprint文は上のコードと等価
と違いはありませんでした。