示例#1
0
class SAEnginePlugin(plugins.SimplePlugin):
	def __init__(self, bus):
		plugins.SimplePlugin.__init__(self, bus)
		self.sa_engine = None
		self.bus.subscribe(u'bind', self.bind)

	def start(self):
		self.db = DatabaseWrapper()
		self.sa_engine = self.db.get_engine()

	def stop(self):
		if self.sa_engine:
			self.sa_engine.dispose()
			self.sa_engine = None

	def bind(self, session):
		session.configure(bind=self.sa_engine)
示例#2
0
class SAEnginePlugin(plugins.SimplePlugin):
    """A plugin to help SQLAlchemy bind correctly to CherryPy threads.
    See http://www.defuze.org/archives/222-integrating-sqlalchemy-into-a-cherrypy-application.html
    """
    def __init__(self, bus):
        plugins.SimplePlugin.__init__(self, bus)
        self.sa_engine = None
        self.bus.subscribe(u'bind', self.bind)

    def start(self):
        self.db = DatabaseWrapper()
        self.sa_engine = self.db.get_engine()

    def stop(self):
        if self.sa_engine:
            self.sa_engine.dispose()
            self.sa_engine = None

    def bind(self, session):
        session.configure(bind=self.sa_engine)