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")をインポートしたところ、ファイルへのリンクがあります。