2011-11-02 35 views
2

我是python金字塔框架的新手,所以善意地幫助我。通過金字塔呈現動態生成的HTML響應

我有一個動態生成的HTML。這個HTML是由一個python腳本生成的,該腳本動態地將從'xyz.html'[使用beautifulsoup]提取到另一個'abc.html'的(標記/表格)寫入。

現在我需要發送這個html頁面('abc.html')作爲'pyramid.response'的'響應'對象。

我該怎麼做。我嘗試以下

_resp = Response() 
    _resp.headerlist = [('Content-type',"text/html; charset=UTF-8'"\] 
    _resp.app_iter = open('abc.html','r') 
    return _resp 

with open('abc.html','r') as f: 
     data = f.read() 
     f.close() 
    return Response(data,content_type='text/html') 

都沒有工作。我不能使用renderer =「package:subpack/abc.html」或任何類似的渲染器,因爲這個生成的html每次都存儲在一個動態生成的位置,所以我不能猜測這個html文件的最終存儲位置。

在此先感謝您的幫助。

+2

這將是很好的指定你的兩次嘗試不起作用。 – Will

+0

ValueError:無法將視圖返回值「{}」轉換爲響應對象。這是我一直面臨的錯誤。如果它有幫助,我也可以提供完整的回溯。謝謝。 – PyBegginer

回答

2

我有點驚訝你的第一個例子不起作用。從金字塔文檔中查看這個食譜條目,看看是否有幫助。

http://docs.pylonsproject.org/projects/pyramid_cookbook/en/latest/static_assets/files.html#serving-file-content-dynamically

+0

ValueError:無法將視圖返回值「{}」轉換爲響應對象 – PyBegginer

+0

這是我正面臨的錯誤。而且我也嘗試了Michale在michale的鏈接中給出的內容,即使這給了我與上面相同的錯誤。 – PyBegginer

+0

另外,生成的html的存儲位置就像這個'home/user/Pyenv/some_dir/new_dir/abc.html',其中'new_dir'是每次運行時創建的新子目錄,並且此位置不在我的python項目下。 – PyBegginer