Robert Brewer
fumanchu at amor.org
Wed Oct 27 13:06:15 EDT 2004
Golawala, Moiz M wrote: > I am very new to mod_python (I have developed application > with python but am new to web development in general). I have > read most of the documentation and I have a couple of > questions. I am planning to use mod_python along with Cheetah > to build an internal website for my company. So far I have > include some basic handlers in apache and can view a hello > world script on my browser. Now when I try to do something a > little more complicated I am lost. > > I have a couple of text fields that I want the user to fill > out and then hit the submit button. I can get that html page > up but I don't understand the mechanism where once a user > hits the submit button, how does he/she get to the next page > on the site. > > In the documentation I don't see any multi page working > examples. Can some one point me to some resource that has > working mult-page html (PSP or Cheetah based) examples with > the necessary Directory tags in the httpd.conf file so I can > better understand what is going on. In a simple application, you can simply examine req.uri in your handler() function, and dispatch based on that. Here's an untested example: from mod_python import apache, util def handler(req): # req.uri = the path portion of the URI. # "http://www.mycorp.org/myapp/topic.htm?a=3" -> "/myapp/topic.htm" page = req.uri if page == "/myapp/submit.htm": return submit(req) else: return view(req) def view(req): req.write("""<html> <body> <form action='/myapp/submit.htm' method='POST'> Please enter your name: <input type='text' name='name' size='20' /> </form> </body> </html> """) return apache.OK def get_params(req): final = {} params = util.FieldStorage(req, 1).list if params is not None: for p in params: final[p.name] = p.value return final def submit(req): params = get_params(req) req.write("Thank you, %s!" % params.get('name')) return apache.OK Robert Brewer MIS Amor Ministries fumanchu at amor.org
|