WEB开发网      濠靛倻鏅悵顖涚附閽樺鐎诲ù婊庡亾缁辨帗鎷呴悩鍨暠濞戞挴鍋撳ù鐘烘閸ㄥ孩绂嶉锝喰﹂柟瀛樺灣濠婃垿鎯冮崟顏嗩伇濞寸姾妫勬慨鈺呭礉濞戝磭骞㈤悹鍥у槻閸ㄥ孩绂嶉敓锟� ---闁挎洩鎷�
开发学院软件开发Python Web.py中Sqlalchemy scoped_session的使用 阅读

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

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接