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をインポートした後で呼び出す必要があります。これは、あまり使い勝手が悪いように見える方法でstdoutをオーバーライドするためです。しかし、魅力のように機能します。

cgi; ....... Tee(filname、 "w")をインポートしたところ、ファイルへのリンクがあります。

4

2 に答える 2

1

Pythonドキュメントから

オプションで、この情報をブラウザに送信する代わりにファイルに保存できます。

この場合、あなたは使用したいと思うでしょう

cgitb.enable(display=1, logdir=directory)
于 2012-08-21T17:43:44.950 に答える