lib/handler.py
author Tero Marttila <terom@fixme.fi>
Fri, 06 Feb 2009 22:48:00 +0200
changeset 8 0ce1f471e9d7
parent 7 d6a8258bd90e
child 9 2a47b00f60b0
permissions -rw-r--r--
and it works, a lot better than before
7
d6a8258bd90e YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
"""
d6a8258bd90e YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
    The actual application behaviour, i.e. generating a Response from a Request :)
d6a8258bd90e YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     3
"""
d6a8258bd90e YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     4
8
0ce1f471e9d7 and it works, a lot better than before
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
     5
import http, page, template
7
d6a8258bd90e YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
d6a8258bd90e YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
def handle_request (request) :
d6a8258bd90e YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     8
    """
d6a8258bd90e YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     9
        Take the Request, and return a Response
d6a8258bd90e YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    10
    """
d6a8258bd90e YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    11
8
0ce1f471e9d7 and it works, a lot better than before
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    12
    # determine the page name
0ce1f471e9d7 and it works, a lot better than before
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    13
    page_name = request.get_page_name()
7
d6a8258bd90e YES YES MOAR WSGI - Hello World
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    14
8
0ce1f471e9d7 and it works, a lot better than before
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    15
    # get the page handler
0ce1f471e9d7 and it works, a lot better than before
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    16
    p = page.lookup(page_name)
0ce1f471e9d7 and it works, a lot better than before
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    17
0ce1f471e9d7 and it works, a lot better than before
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    18
    # render the template
0ce1f471e9d7 and it works, a lot better than before
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    19
    response_data = template.render("layout",
0ce1f471e9d7 and it works, a lot better than before
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    20
        site_root_url   = request.get_script_dir(),
0ce1f471e9d7 and it works, a lot better than before
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    21
        page_title      = p.get_title(),
0ce1f471e9d7 and it works, a lot better than before
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    22
        page_content    = p.get_content(),
0ce1f471e9d7 and it works, a lot better than before
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    23
    )
0ce1f471e9d7 and it works, a lot better than before
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    24
    
0ce1f471e9d7 and it works, a lot better than before
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    25
    # return the response
0ce1f471e9d7 and it works, a lot better than before
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    26
    return http.Response(response_data)
0ce1f471e9d7 and it works, a lot better than before
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    27