26.15. Troubleshooting in Python

There are several methods to diagnose problematic Python code. The methods most commonly used for diagnosing CGI code are listed in order from least to most robust in the following section.

26.15.1. Run the Code in the Interpreter

Any Python code can be run from the interpreter if you import the modules you need. If you try to run CGI code in the interpreter, it will simply print the HTML code to the screen. This is sometimes useful, however, in finding the problem with your code. Running your code in the interpreter allows you to readily see if you are missing any module imports or have syntax errors.

26.15.2. Using the cgitb Module

Python's cgitb module provides an exception handler for Python CGI scripts. If an uncaught exception occurs after the cgitb module has been enabled, extensive traceback information is displayed as HTML sent to your browser to help you troubleshoot the problem. This is an invaluable tool in CGI script development. To use this feature, import the module and enable cgitb, as follows:

import cgitb
cgitb.enable()

26.15.3. Redirecting the Error Stream

A more robust approach to examining traceback information uses only built-in modules and sets the content type of the output to plain text, which disables all HTML processing. As previously mentioned, if your script works, the HTML code will be displayed by your client. If an exception is raised, a traceback will be displayed to help you track down the problem. Employ the ...

Get Web Standards Programmer's Reference: HTML, CSS, JavaScript®, Perl, Python®, and PHP now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.