0

ダウンロード可能なコンテンツを作成しようとして困っています。私は使用webapp2.RequestHandlerしていますが、次のシナリオがあります。

  1. Jinja 2 を使用して、「これを csv としてダウンロード」リンクを含むページを作成しています。
  2. リンクをクリックすると、ファイルが正しくダウンロードされ、正しいコンテンツで開始され、最後にテンプレート コンテンツが追加されます。

これが私のクラスです:

class xmlAnalyzer(Handler):
    def get(self):
        displaySample = self.request.get('SamplePage')
        downloadMapping = self.request.get('downloadMapping')

        if downloadMapping:
            r = self.request.get('srcTgtMapping')
            srcTgtMapping = r.split('], [')

            csvContents = 'Column name; Source name; Source type; Column name; Target name; Target type;\n'
            self.response.headers['Content-Disposition'] = 'attachment; filename=' + str(downloadMapping) +'.csv'
            self.response.out.write(csvContents)

        elif displaySample == '2':
            testString = 'abracadabra'
            self.response.headers['Content-Disposition'] = 'attachment; filename=' + 'testFile.csv'
            self.response.write(testString)

2 番目のケースは正常に機能しますが (SamplePage=2パラメーターが指定されている場合)、ファイルには「abracadabra」という単語だけが含まれています。ただし、最初のケースでは、ダウンロードされたファイルは次のようになります。

Column name; Source name; Source type; Column name; Target name; Target type;
<!DOCTYPE html>

<link rel="stylesheet" type="text/css" href="/stylesheets/styles.css">
<Content-Type: text/html; charset=utf-8>
<html>
<body class="body">

<div class="main-title">Welcome to XML Analyzer for Informatica PowerCenter</div>

最初の行は私が期待するものです。しかし、それだけのはずです。残りはテンプレートです。これが追加される理由は何ですか? 前もって感謝します!

4

1 に答える 1

0

言うのは難しいですが、直感的に、あなたが示したコードから判断すると、どちらかだと思います...

  • self.response.out.clear()最初のブロックのと関係がifあり、2 番目のブロックにはありません。
  • または webapp2 フレームワークによる自動テンプレート レンダリング。しかし、これは2つのケースが異なる動作をする理由を説明していないので、これがそのself.response.out.clear()呼び出しに気づいた理由です.

PSところで、あなたのコードのすべての関連部分を私たちに示してよろしいですか?

于 2013-10-01T09:02:44.817 に答える