cgitb --- 用于 CGI 腳本的回溯管理器?

源代碼: Lib/cgitb.py

Deprecated since version 3.11, will be removed in version 3.13: The cgitb module is deprecated (see PEP 594 for details).


cgitb 模塊提供了用于 Python 腳本的特殊異常處理程序。 (這個名稱有一點誤導(dǎo)性。 它最初是設(shè)計用來顯示 HTML 格式的 CGI 腳本詳細(xì)回溯信息。 但后來被一般化為也可顯示純文本格式的回溯信息。) 激活這個模塊之后,如果發(fā)生了未被捕獲的異常,將會顯示詳細(xì)的已格式化的報告。 報告顯示內(nèi)容包括每個層級的源代碼摘錄,還有當(dāng)前正在運行的函數(shù)的參數(shù)和局部變量值,以幫助你調(diào)試問題。 你也可以選擇將此信息保存至文件而不是將其發(fā)送至瀏覽器。

要啟用此特性,只需簡單地將此代碼添加到你的 CGI 腳本的最頂端:

import cgitb
cgitb.enable()

enable() 函數(shù)的選項可以控制是將報告顯示在瀏覽器中,還是將報告記錄到文件供以后進(jìn)行分析。

cgitb.enable(display=1, logdir=None, context=5, format='html')?

此函數(shù)可通過設(shè)置 sys.excepthook 的值以使 cgitb 模塊接管解釋器默認(rèn)的異常處理機制。

可選參數(shù) display 默認(rèn)為 1 并可被設(shè)為 0 來停止將回溯發(fā)送至瀏覽器。 如果給出了參數(shù) logdir,則回溯會被寫入文件。 logdir 的值應(yīng)當(dāng)是一個用于存放所寫入文件的目錄。 可選參數(shù) context 是要在回溯中的當(dāng)前源代碼行前后顯示的上下文行數(shù);默認(rèn)為 5。 如果可選參數(shù) format"html",輸出將為 HTML 格式。 任何其它值都會強制啟用純文本輸出。 默認(rèn)取值為 "html"。

cgitb.text(info, context=5)?

此函數(shù)用于處理 info (一個包含 sys.exc_info() 返回結(jié)果的 3 元組) 所描述的異常,將其回溯格式化為文本并將結(jié)果作為字符串返回。 可選參數(shù) context 是要在回溯中的當(dāng)前源碼行前后顯示的上下文行數(shù);默認(rèn)為 5。

cgitb.html(info, context=5)?

此函數(shù)用于處理 info (一個包含 sys.exc_info() 返回結(jié)果的 3 元組) 所描述的異常,將其回溯格式化為 HTML 并將結(jié)果作為字符串返回。 可選參數(shù) context 是要在回溯中的當(dāng)前源碼行前后顯示的上下文行數(shù);默認(rèn)為 5。

cgitb.handler(info=None)?

此函數(shù)使用默認(rèn)設(shè)置處理異常(即在瀏覽器中顯示報告,但不記錄到文件)。 當(dāng)你捕獲了一個異常并希望使用 cgitb 來報告它時可以使用此函數(shù)。 可選的 info 參數(shù)應(yīng)為一個包含異常類型,異常值和回溯對象的 3 元組,與 sys.exc_info() 所返回的元組完全一致。 如果未提供 info 參數(shù),則會從 sys.exc_info() 獲取當(dāng)前異常。