Если вы используете резак для печенья, это довольно просто. Фабрика сеансов хранится в config.registry['dbsession_factory']
, и вы можете взять ее и использовать для создания сеансов, когда захотите, в том числе во время конфигурации. Хороший способ сделать это - использовать временный диспетчер транзакций, но это не обязательно.
import transaction
from myapp.models import get_tm_session
def main(...):
config.include('myapp.models')
tm = transaction.TransactionManager(explicit=True)
with tm:
dbsession = get_tm_session(config.registry['dbsession_factory'], tm)
# do stuff, the "with tm" will invoke commit if there are no exceptions