Differences between revisions 9 and 10
Revision 9 as of 2005-09-14 10:45:36
Size: 2208
Editor: staselog
Comment: Added notes section
Revision 10 as of 2005-09-14 21:25:56
Size: 1962
Editor: 63
Comment: updated; Thank You!
Deletions are marked like this. Additions are marked like this.
Line 17: Line 17:
import cgitb; cgitb.enable() # for troubleshooting
Line 32: Line 33:
if form.has_key( "message" ):
    
message = form["message"].value
else:
    message =
"(no message)"
message = form.getvalue("message", "(no message)")
Line 53: Line 51:
== Notes ==

Instead of checking if key exists and then using `form[key].value`, you can just use shortcut
`form.getvalue(key, default)`

For troubleshooting, you should include lines `import cgitb; cgitb.enable` to head of you CGI script.

CGI Scripts

The [http://www.python.org/doc/current/lib/module-cgi.html cgi module] is at the core of the Python CGI scripts.

Basically, you just need to print out an HTTP header ("Content-type: text/html"), a web page, and handle any forms you may have received.

Getting Apache's permissions just right can be annoying, and is sadly beyond this page's scope.

Sample Code

   1 #!/usr/bin/env python
   2 
   3 import cgi
   4 import cgitb; cgitb.enable()  # for troubleshooting
   5 
   6 print "Content-type: text/html"
   7 print
   8 
   9 print """
  10 <html>
  11 
  12 <head><title>Sample CGI Script</title></head>
  13 
  14 <body>
  15 
  16   <h3> Sample CGI Script </h3>
  17 """
  18 
  19 form = cgi.FieldStorage()
  20 message = form.getvalue("message", "(no message)")
  21 
  22 print """
  23 
  24   <p>Previous message: %s</p>
  25 
  26   <p>form:</p>
  27 
  28   <form method="post" action="index.cgi">
  29     <p>message: <input type="text" name="message"/></p>
  30   </form>
  31 
  32 </body>
  33 
  34 </html>
  35 """ % message

See Also

Discussion

CgiScripts (last edited 2014-04-16 06:53:27 by DaleAthanasias)

Unable to edit the page? See the FrontPage for instructions.