Exemple #1
0
###############################################################################
#                              scoped_session
# The scoped_session object by default uses threading.local() as storage
###############################################################################

# initial
session_factory = sessionmaker(bind=engine)
Session = scoped_session(session_factory)

# only keep one session instance for each thread
session_1 = Session()
session_2 = Session()
assert session_1 is session_2    # True

# release and recreate session instance
Session.remove()
session_3 = Session()
assert session_3 is session_1    # False

# as a proxy
Session.query()
Session.add()
Session.commit()


# bind to a request scope
def get_current_request():
    # return an scope, for example, coroutine, thread or request
    pass
Session = scoped_session(session_factory, scopefunc=get_current_request)