cgitb
— Менеджер обратной трассировки для CGI-скриптов¶
Исходный код: Lib/cgitb.py
Утратил актуальность с версии 3.11, будет удален в версии 3.13: Модуль cgitb
устарел (подробнее см. PEP 594).
Модуль cgitb
предоставляет специальный обработчик исключений для скриптов на Python. (Его название немного вводит в заблуждение. Изначально он был разработан для отображения подробной информации об обратной трассировке в HTML для CGI-скриптов. Позже она была расширена, чтобы также отображать эту информацию в виде обычного текста.) После активации этого модуля, в случае возникновения неперехваченного исключения, будет отображен подробный отформатированный отчет. Отчет включает в себя обратную трассировку, показывающую выдержки из исходного кода для каждого уровня, а также значения аргументов и локальных переменных для запущенных в данный момент функций, которые помогут вам отладить проблему. При желании вы можете сохранить эту информацию в файл вместо того, чтобы отправлять ее в браузер.
Чтобы включить эту функцию, просто добавьте это в начало вашего CGI-скрипта:
import cgitb
cgitb.enable()
Параметры функции enable()
определяют, будет ли отчет отображаться в браузере и будет ли отчет записан в файл для последующего анализа.
- cgitb.enable(display=1, logdir=None, context=5, format='html')¶
Эта функция заставляет модуль
cgitb
взять на себя обработку исключений интерпретатором по умолчанию, установив значениеsys.excepthook
.Необязательный параметр display по умолчанию имеет значение
1
и может быть установлен в значение0
, чтобы запретить отправку обратной трассировки в браузер. Если параметр logdir присутствует, отчеты об обратной трассировке записываются в файлы. Значением logdir должен быть каталог, в который будут помещены эти файлы. Необязательный аргумент context - это количество строк контекста, отображаемых вокруг текущей строки исходного кода в обратной трассировке; по умолчанию это значение равно5
. Если необязательный аргумент format равен"html"
, выходные данные форматируются как HTML. При любом другом значении выводится обычный текст. Значение по умолчанию -"html"
.
- cgitb.text(info, context=5)¶
Эта функция обрабатывает исключение, описанное info (3-кортеж, содержащий результат
sys.exc_info()
), форматируя обратную трассировку в виде текста и возвращая результат в виде строки. Необязательный аргумент context - это количество строк контекста, отображаемых вокруг текущей строки исходного кода в обратной трассировке; по умолчанию это значение равно5
.
- cgitb.html(info, context=5)¶
Эта функция обрабатывает исключение, описанное в info (3-кортеж, содержащий результат
sys.exc_info()
), форматируя обратную трассировку в формате HTML и возвращая результат в виде строки. Необязательный аргумент context - это количество строк контекста, отображаемых вокруг текущей строки исходного кода в обратной трассировке; по умолчанию это значение равно5
.
- cgitb.handler(info=None)¶
Эта функция обрабатывает исключение, используя настройки по умолчанию (то есть отображает отчет в браузере, но не выполняет вход в файл). Это можно использовать, когда вы обнаружили исключение и хотите сообщить о нем, используя
cgitb
. Необязательный аргумент info должен содержать 3 кортежа, содержащих тип исключения, значение исключения и объект обратной трассировки, точно такой же, как кортеж, возвращаемыйsys.exc_info()
. Если аргумент info не указан, текущее исключение получается изsys.exc_info()
.