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