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()
.