equal
deleted
inserted
replaced
1 """ |
1 """ |
2 The actual application behaviour, i.e. generating a Response from a Request :) |
2 The actual application behaviour, i.e. generating a Response from a Request :) |
3 """ |
3 """ |
4 |
4 |
5 class Handler (object) : |
5 class RequestHandler (object) : |
6 """ |
6 """ |
7 A handler handles a Request, returning a Response |
7 A handler handles a Request, returning a Response |
8 """ |
8 """ |
9 |
9 |
10 def __init__ (self, func, *args, **kwargs) : |
10 def __init__ (self, func, *args, **kwargs) : |
13 self.kwargs = kwargs |
13 self.kwargs = kwargs |
14 |
14 |
15 def handle_request (self, request) : |
15 def handle_request (self, request) : |
16 """ |
16 """ |
17 Handle the request, returning a Response object |
17 Handle the request, returning a Response object |
|
18 |
|
19 XXX: rename to __call__ kplzthx |
18 """ |
20 """ |
19 |
21 |
20 return self.func(request, *self.args, **self.kwargs) |
22 return self.func(request, *self.args, **self.kwargs) |
21 |
23 |
22 # fs handler |
|
23 import http, page, menu, template |
|
24 |
24 |
25 def handle_request (request) : |
|
26 """ |
|
27 Take the Request, and return a Response |
|
28 """ |
|
29 |
|
30 # determine the page name |
|
31 page_name = request.get_page_name() |
|
32 |
|
33 # get the page handler |
|
34 p = page.lookup(page_name) |
|
35 |
|
36 # bind to request |
|
37 p.bind_request(request) |
|
38 |
|
39 # render the template |
|
40 response_data = template.render("layout", |
|
41 site_root_url = request.get_script_dir(), |
|
42 site_page_url = request.get_page_prefix(), |
|
43 page = p, |
|
44 menu = menu.Menu(p), |
|
45 ) |
|
46 |
|
47 # return the response |
|
48 return http.Response(response_data) |
|
49 |
|