通过Pyramid Response 渲染动态生成的HTML

3 投票
1 回答
2599 浏览
提问于 2025-04-17 05:29

我刚接触Python的Pyramid框架,希望大家能帮帮我。

我有一个动态生成的HTML页面。这个HTML是通过一个Python脚本生成的,脚本会从某个'xyz.html'文件中提取内容(比如标签和表格),然后写入到另一个'abc.html'文件中,使用的是BeautifulSoup这个库。

现在我需要把这个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文件的最终存储位置。

提前谢谢你的帮助。

1 个回答

2

我有点惊讶你第一个例子没有成功。去看看Pyramid文档里的这个食谱,看看能否帮到你。

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

撰写回答