5
我想在烧瓶生成的网页上放置一个按钮,让用户在用户单击按钮时将html页面下载为文件。我想象的是将呈现的html保存到BytesIO
并通过send_file
发送,但我找不到如何将呈现的页面保存到文件对象中。我怎样才能做到这一点?下载烧瓶生成的html页面
我想在烧瓶生成的网页上放置一个按钮,让用户在用户单击按钮时将html页面下载为文件。我想象的是将呈现的html保存到BytesIO
并通过send_file
发送,但我找不到如何将呈现的页面保存到文件对象中。我怎样才能做到这一点?下载烧瓶生成的html页面
你可以尝试这样的事:
import StringIO
from flask import Flask, send_file, render_template
def page_code():
strIO = StringIO.StringIO()
strIO.write(render_template('hello.html', name='World'))
strIO.seek(0)
return send_file(strIO,
attachment_filename="testing.txt",
as_attachment=True)
它不是测试,但应该给你一个想法。
非常感谢!我没想到''render_template''要返回一个字符串中的整个html页面,我认为它会做得比场景背后更多,因为API文档没有提及任何关于它的返回值,或者可能我错过了它。这解决了这个问题。 –
你的意思是像ctrl-s或右键单击>保存页面为?为什么不让他们这样做呢?这甚至可以照顾图像和其他链接的资源。 – davidism
感谢您的评论!有几个原因;首先,这个网页是针对那些根本不懂技术的人,所以我不指望他们知道这个窍门;第二,我想给他们几乎相同但不完全相同的网页;最后,我并不特别相信浏览器能够很好地保存网页,因为我个人经历了一些失败。顺便说一句,这个网页是关于生成科学数据,因此内容和目标受众与通常的网页有点不同。 –