簡體   English   中英

附加到response.out.write的不需要的模板代碼

[英]Unwanted template code attached to response.out.write

我堅持嘗試創建可下載的內容。 我正在使用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)

現在,盡管第二種情況可以正常工作(如果提供了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>

第一行是我所期望的。 但是,僅此而已。 剩下的就是模板-知道為什么要添加它嗎? 提前致謝!

很難說,但是憑直覺,根據您顯示給我們的代碼來決定,我想可能是...

  • 與第一個if塊中的self.response.out.clear()有關,第二個不包含它;
  • 或通過webapp2框架自動呈現模板; 但這並不能解釋為什么這兩種情況的行為有所不同,所以這讓我注意到了self.response.out.clear()調用。

PS ,順便說一句,您確定您已經向我們展示了代碼的所有相關部分嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM