blob: 0fca385332b68b7bedad4e3574b9c7177d75a901 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
from paste.util import thirdparty
thirdparty.add_package('sqlobject')
import sqlobject
from todo_wareweb import db
conns = {}
def urlparser_hook(environ):
if not environ.has_key('todo_wareweb.base_url'):
environ['todo_wareweb.base_url'] = environ['SCRIPT_NAME']
def urlparser_wrap(environ, start_response, app):
db_uri = environ['paste.config']['database']
first_conn = False
if db_uri in conns:
conn = conns[db_uri]
else:
first_conn = True
conns[db_uri] = conn = sqlobject.connectionForURI(db_uri)
sqlobject.sqlhub.threadConnection = conn
if first_conn:
db.check_db()
# @@: This doesn't allow for using database connections during
# the application iterator
try:
return app(environ, start_response)
finally:
sqlobject.sqlhub.threadConnection = None
|