Jim Peterson
jpeterson at ainet.com
Fri Oct 31 12:43:39 EST 2003
Hi, total newb to python, apache, mod_python, spyce. running Apache/2.0.47 (Win32) mod_python/3.0.3 Python/2.2.2 Spyce 1.3.11 under Win2K, using ActiveState Python. i'm trying to use the 'production ready', stable stuff. Here's the details. TIA --------------------------------------------------------------------- Trying to port my CGI app to mod_python. It was blowing up until I traced the failure line to mod_python.apache. I diffed the file against a beta version, found a patch there, and applied the patch to my apache.py. The patch stopped the bomb but I'm not getting any form fields. ################################# # original code #for k in sav_env: # osenv[k] = env[k] # after the patch for k in sav_env: osenv[k] = sav_env[k] I don't have any idea if that is relevant. My test code works in a true CGI environment but not under the mp cgi handler. I'm using Apache aliases to configure both true CGI and mp cgi against the same directory. # -------------------------------------------------------- # this configures a conventional CGI setup ScriptAlias /xcgi-bin/ /Jim/Home/Web/CGI/ <Location /xcgi-bin/ > AllowOverride None Options +Indexes +ExecCGI Order allow,deny Allow from all </Location> # -------------------------------------------------------- # this configures a mod_python CGI handler, I guess Alias /cgi-bin/ /Jim/Home/Web/CGI/ <Location /cgi-bin/ > SetHandler python-program PythonHandler mod_python.cgihandler PythonDebug On </Location> I invoke my test code with either URL. I test mod_python handling with url of this form: /cgi-bin/cgitest.py?fielda='asdf'&fieldb='qwer' I test true cgi handling with url of this form: /xcgi-bin/cgitest.py?fielda='asdf'&fieldb='qwer' Throughout my app I pass values thru the URL/querystring. Under true CGI, my script gets values in the form fields. Under mp cgi, it gets None. Here is the CGI script: # ------------------- cut here -------------------- #!python # cgitest.py # # test cgi port to mod_python cgi handler # import cgi form = cgi.FieldStorage() # print content type here to enable html rendering of debug form print "Content-Type: text/html\n\n" # prints dict of env vars, for debugging #cgi.print_environ() # prints dict of form args, for debugging cgi.print_form(form) # extract the data from the query string fielda = form.getvalue('fielda') fieldb = form.getvalue('fieldb') # content-type printed above html = \ ''' <html> <head> <title> cgitest.py </title> </head> <body> <hr /> <table> <tr><td> fielda </td><td> %s </td></tr> <tr><td> fieldb </td><td> %s </td></tr> </table> <hr /> </body> </html> ''' print html % (fielda, fieldb) # --------------------------------------------------------------- # cgitest.py - end of file # --------------------------------------------------------------- #
|