1

我正在使用 cgitb (python 2.7) 创建 html 文档服务器端。我有文件进行一堆查询,然后生成 html。我希望能够仅链接 html,因此如果我可以将 html 打印到新文件并将其链接,它将起作用。

有没有办法获取页面将在处理结束时生成的 html,以便我可以将其放入新文件中,而无需跟踪我迄今为止所做的一切?

编辑:在这里找到一个片段:https ://stackoverflow.com/a/616686/1576740

class Tee(object):
    def __init__(self, name, mode):
        self.file = open(name, mode)
        self.stdout = sys.stdout
        sys.stdout = self
    def __del__(self):
        sys.stdout = self.stdout
        self.file.close()
    def write(self, data):
        self.file.write(data)
        self.stdout.write(data)

您必须在导入 cgi 后调用它,因为它以一种不太友好的方式覆盖标准输出。但工作就像一个魅力。

我只是 import cgi;....... Tee(filname, "w") 然后我有一个指向该文件的链接。

4

2 回答 2

1

From the Python Documentation

Optionally, you can save this information to a file instead of sending it to the browser.

In this case you would want to use

cgitb.enable(display=1, logdir=directory)
于 2012-08-21T17:43:44.950 回答
0
import cgitb
import sys

try:
    ...
except:
    with open("/path/to/file.html", "w") as fd:
        fd.write(cgitb.html(sys.exc_info()))
于 2018-03-21T15:22:19.820 回答