sqlalchemy在web.py中的session使用
2011-08-10 21:24
465 查看
按照sqlalchemy的文档中关于sqlalchemy的session在web应用上下文的生命周期应该是:
见:http://www.sqlalchemy.org/docs/05/session.html#lifespan-of-a-contextual-session
不过web.py的cookbook中关于使用sqlalchemy的示例中,最后并没有释放sqlalchemy的session资源,正确的应该如下:
Web Server Web Framework User-defined Controller Call -------------- -------------- ------------------------------ web request -> call controller -> # call Session(). this establishes a new, # contextual Session. session = Session() # load some objects, save some changes objects = session.query(MyClass).all() # some other code calls Session, it's the # same contextual session as "sess" session2 = Session() session2.add(foo) session2.commit() # generate content to be returned return generate_content() Session.remove() <- web response <-
见:http://www.sqlalchemy.org/docs/05/session.html#lifespan-of-a-contextual-session
不过web.py的cookbook中关于使用sqlalchemy的示例中,最后并没有释放sqlalchemy的session资源,正确的应该如下:
def load_sqla(handler): web.ctx.orm = scoped_session(sessionmaker(bind=engine)) try: return handler() except web.HTTPError: web.ctx.orm.commit() raise except: web.ctx.orm.rollback() raise finally: web.ctx.orm.commit() # If the above alone doesn't work, uncomment # the following line: #web.ctx.orm.expunge_all() web.ctx.orm.close() # <=- 关闭session,或者用 .remove()
相关文章推荐
- Python中web.py session使用,解决EOFError
- web.py 0.3 新手指南 - 在子应用下使用session
- web.py使用session.DiskStore存储session的时候报EOFError异常解决方案
- SQLAlchemy Session Store webpy DBStore
- web.py 0.3 新手指南 - 在调试模式下使用session
- web.py 0.3 新手指南 - 在template中使用session
- Web.py中Sqlalchemy scoped_session的使用
- webpy中使用session
- webpy session debug 模式下无法使用
- webpy中使用session
- web.py在SAE中的Session问题解决方法(使用mysql存储)
- 解决web.py在SAE云中的Session使用问题
- web.py在SAE中的Session问题解决方法(使用mysql存储)
- web.py 的session 没法使用吗?
- 使用mongodb来实现web.py的session
- webpy使用笔记(二) session/sessionid的使用
- 在使用django框架搭建web中如果需要单独运行py脚本出现AppRegistryNotReady("Apps aren't loaded yet.")问题
- 只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态。还请确保在应用程序配置的 // 节中包括 System.Web.SessionStateMod 或自定义会话状态模块 -
- mvc webapi+autofac + session 的使用
- Web.py Cookbook 简体中文版 - 如何使用web.background