author | Tero Marttila <terom@paivola.fi> |
Wed, 10 Oct 2012 22:45:50 +0300 | |
changeset 3 | 5990b188c54b |
parent 2 | b0659c867226 |
child 4 | b09436772d46 |
permissions | -rw-r--r-- |
0 | 1 |
import werkzeug |
2 |
from werkzeug.wrappers import Request, Response |
|
3 |
from werkzeug.utils import redirect |
|
4 |
||
5 |
import logging; log = logging.getLogger('pvl.verkko.wsgi') |
|
6 |
||
1
731d2df704f0
fixup index + non-chunked response (?) + hosts + evil hardcoded db url
Tero Marttila <terom@paivola.fi>
parents:
0
diff
changeset
|
7 |
from pvl.verkko import db as database, web, hosts |
0 | 8 |
|
2
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
9 |
class Application (object) : |
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
10 |
def __init__ (self, db) : |
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
11 |
""" |
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
12 |
Initialize app with db. |
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
13 |
""" |
0 | 14 |
|
2
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
15 |
self.db = database.Database(db) |
0 | 16 |
|
2
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
17 |
@Request.application |
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
18 |
def __call__ (self, request) : |
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
19 |
""" |
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
20 |
WSGI entry point, werkzeug Request -> Response |
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
21 |
""" |
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
22 |
|
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
23 |
# path? |
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
24 |
path = request.path.strip('/') |
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
25 |
|
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
26 |
if path : |
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
27 |
path = path.split('/') |
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
28 |
else : |
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
29 |
path = [] |
0 | 30 |
|
2
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
31 |
log.debug("path: %s", path) |
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
32 |
|
3 | 33 |
# lookup handler/respond |
2
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
34 |
if not path : |
3 | 35 |
handler = web.Index |
2
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
36 |
|
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
37 |
elif path[0] == 'hosts' : |
3 | 38 |
handler = hosts.Handler |
39 |
path.pop(0) |
|
2
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
40 |
|
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
41 |
else : |
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
42 |
return Response("Not Found", status=404) |
b0659c867226
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents:
1
diff
changeset
|
43 |
|
3 | 44 |
return handler(self, request, path).respond() |