1
DBSession = scoped_session(sessionmaker(bind=engine)
#1
DBSession.add(someobject)
DBsession.commit()
#2
session = DBSession()
session.add(someobject)
session.commit()
什麼之間#1和#2區別?在SQLAlchemy中,DBSession和DBSession()有什麼區別?
我在金字塔的應用程序中使用#1,這兒有很多的「MySQL已經走了」例外
session(= DBSession())是thread_local,而DBSession不是? – Tallmad
'DBSession()'創建'DBSession'類的線程本地實例。在DBSession類中調用'add()'或'commit()'類方法會自動創建一個線程本地實例,前提是沒有任何方法存在並將方法調用路由到該實例。 – Simon