Ricardo wrote: > Hi everyone > I'm trying to use the cgi library to create a python script and loading it > from a web page. I have already done the necessary imports, and the > default commands to receive data from "html" are written too. The final > version is something like this: > > #!/usr/bin/python > > import subprocess > import cgi > import cgitb > > cgitb.enable() > > input = cgi.FieldStorage() > > …. my code (do something with input)…. > > > #printing the response > > print "Content-Type: text/html" > print > print "<TITLE>My title:</TITLE>" > print "</HEAD>" > print "<BODY>" > print ….. bla bla … > print "%s"%theoutput > print "</BODY>" > > Besides, my call from my index.html is like this: > > <form action="/scripts/python_script.py" method="post"> > <input name="inid" type="text" size="20" class="input" /><br/><br/> > <input type="submit" value="accept" class="button"/> > </form> > > well, the thing is that when i do the call from the browser: > > http://localhost/index.html > | > V > put the data and click on the "accept" button > | > V > http:/localhost/scripts/python_script.py > > I only get the python_script.py as a plain test by response (the script > printed on my browser). I have already changed the permissions for > python_script.py. I have checked the import cgi,cgitb in the python shell > (i am using v2.7) and they work fine. So, i don't know what it is going > wrong here. > > A little help please… any idea?
Is your webserver configured to allow cgi scripts? In the scripts directory? For Apache see http://httpd.apache.org/docs/current/howto/cgi.html Python also comes with a CGI Server. A quick-and-dirty setup goes like this: $ cat cgi-bin/script.py #!/usr/bin/python # -*- coding: utf-8 -*- import cgi import cgitb cgitb.enable() input = cgi.FieldStorage() print "Content-Type: text/html" print print "<TITLE>My title:</TITLE>" print "</HEAD>" print "<BODY>" print "Hello world" print "</BODY>" $ chmod a+x cgi-bin/script.py $ python -m CGIHTTPServer Serving HTTP on 0.0.0.0 port 8000 ... If you then point your browser to http://localhost:8000/cgi-bin/script.py you should see Hello world in the browser and (something like) localhost - - [24/Sep/2011 08:41:27] "GET /cgi-bin/script.py HTTP/1.1" 200 - in the shell. Note that the script must be in cgi-bin (or htbin) unless you start the server with a custom script that modifies CGIHTTPRequestHandler.cgi_directories accordingly. -- http://mail.python.org/mailman/listinfo/python-list