Web.py中Sqlalchemy scoped_session的使用
2008-11-10 13:22:44 来源:WEB开发网核心提示:Sqlalchemy中, 创建Session是一件比较耗资源的事情.在Web环境中, 我们需要以一种节省的方式使用, SA提供了一个对Session的包装,scoped_session, 以确保能共享一个Session.文档中并没有直接给出最佳实践.我做了一点的google search后, 将代码改为:#sqlalc
Sqlalchemy中, 创建Session是一件比较耗资源的事情.
在Web环境中, 我们需要以一种节省的方式使用, SA提供了一个对Session的包装,scoped_session, 以确保能共享一个Session.
文档中并没有直接给出最佳实践.
我做了一点的google search后, 将代码改为:
#sqlalchemy
engine=create_engine('mysql://root:passwd@localhost/dbname',echo=True,pool_recycle=60)
#loading
defloadsa():
session=scoped_session(sessionmaker(autoflush=True,bind=engine))
web.ctx.sadbsession=session
web.ctx.db=session()
#unloading
defunloadsa():
web.ctx.db.close()
web.ctx.sadbsession.remove()
#processor
app.add_processor(web.loadhook(loadsa))
app.add_processor(web.unloadhook(unloadsa))
在web程序里, 可以:
db=web.ctx.db
db.query(user).....
Tags:Web py Sqlalchemy
编辑录入:爽爽 [复制链接] [打 印]赞助商链接