Примерная структура папок дополнения:
pyramid_ext_plugin |-- __init__.py `-- action.py
В __init__.py находятся все настройки includeme, а в action.py действия с базой. Для получения DBSession в action.py исправим сначала __init__.py:
import sqlalchemy
import sqlalchemy.orm as orm
from zope.sqlalchemy import ZopeTransactionExtension
DBSession = None
def includeme(config):
global DBSession
engine = sqlalchemy.engine_from_config(config.registry.settings)
if DBSession is None:
DBSession = orm.scoped_session(
orm.sessionmaker(extension=ZopeTransactionExtension()))
DBSession.remove()
DBSession.configure(bind=engine)
Все Ж) теперь можно в action.py писать так:
from pyramid_ext_pugin import DBSession
Комментариев нет:
Отправить комментарий