site/index.py
author Tero Marttila <terom@fixme.fi>
Tue, 02 Dec 2008 03:05:04 +0200
changeset 2 ec68a0f75c58
child 5 9ed4c7d2bdd2
permissions -rw-r--r--
python functionality...
2
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
#!/usr/bin/env python2.5
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     3
DEBUG = True
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     4
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     5
# imports
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
if DEBUG :
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
    import cgitb; cgitb.enable()
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     8
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     9
# system modules
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    10
import cgi, os
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    11
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    12
# my modules/packages
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    13
import request
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    14
import pages
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    15
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    16
def dump_environ () :
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    17
    print "<!--"
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    18
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    19
    for k, v in os.environ.iteritems() :
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    20
        print "%25s: %s" % (k, v)
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    21
    
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    22
    print "-->"
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    23
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    24
# main
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    25
def main (environ) :
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    26
    # load our req
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    27
    req = request.Request(environ, default_page='main')
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    28
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    29
    # get the page handler
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    30
    page = pages.find(req)
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    31
    
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    32
    # render
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    33
    print "Status: %d\r\n" % page.get_response_code(),
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    34
    print "Content-Type: text/html\r\n",
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    35
    print "\r\n",
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    36
    print "%s\r\n" % page.render_template()
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    37
    
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    38
    # debug output
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    39
    if DEBUG :
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    40
        dump_environ()
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    41
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    42
if __name__ == '__main__' :
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    43
    main(os.environ)
ec68a0f75c58 python functionality...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    44