arreglado un fallo en el cargador de sqlalchemy
[webpysample.git] / app.py
1 #!/usr/bin/python
2 # -*- coding: utf-8 -*-
3
4 import web
5 import db
6
7 urls = (
8         '/login', 'view.login.Login',
9         '/logout', 'view.login.Logout',
10         '/reset', 'view.reset.Reset',
11         '/(.*)', 'view.index.Index')
12
13 app = web.application(urls, globals())
14
15 # templates
16 render = web.template.render('templates', base='layout')
17
18 # session with reloader
19 if web.config.get('_session') is None:
20     store = web.session.DiskStore('sessions')
21     session = web.session.Session(app, store, {'count': 0})
22     web.config._session = session
23 else:
24     session = web.config._session
25
26 def session_hook():
27     web.ctx.session = session
28     web.ctx.render = render
29 app.add_processor(web.loadhook(session_hook))
30
31 # Sqlalchemy processor
32 def load_sqla(handler):
33     web.ctx.orm = db.connect()
34     try:
35         return handler()
36     except web.HTTPError:
37        web.ctx.orm.commit()
38        raise
39     except:
40         web.ctx.orm.rollback()
41         raise
42     else:
43         web.ctx.orm.commit()
44
45 app.add_processor(load_sqla)
46
47 if __name__ == '__main__':
48     app.run()
49