Documentation for python-stdnet's DEVELOPMENT version. Get the release docs here.
A Session is a lightweight component which establishes all conversations with backend databases. It is the middleware between Model and Router on one side and the stdnet.BackendDataServer on the other side.
Session is a regular Python class which is obtained from a Router via the Router.session() method. We continue to use the models router created for our tutorial application:
session = models.session()
session2 = models.session()
Once a session is obtained, one can create a query on a model by simply invoking the Session.query() method:
query = session.query(models.fund)
A less verbose way of obtaining a query is to use the Manager.query() method directly:
query = models.fund.query()
A Session is said to be in a transactional state when its Session.transaction attribute is not None. A transactional state is obtained via the Session.begin() method:
transaction = session.begin()
The returned transaction instance is the same as the value stored at the Session.transaction attribute. Note that if we try to obtain a new transaction from a session already in a transactional state an InvalidTransaction exception will occur.