我正在编写一个应用程序,它生成最终用户将下载的大量数据(CSV文件)。我当前有一个页面,它根据表单中的条目生成数据,并将创建的生成器对象返回给用户,如下所示:
@app.route('/data', methods = ['GET', 'POST'])
def data():
form = Form()
if form.validate_on_submit():
generator = create_generator(form)
name = "results.csv"
return Response(generator, mimetype="text/plain", headers={"Content-Disposition": "attachment;filename={}".format(name)})
return render_template('data.html', title = 'Data Page', form = form)
现在,我要做的是将生成器和一些附加数据一起传递给应用程序中的另一个视图/页面,这样类似于:
^{pr2}$其中output.html
将有一个可单击的链接来下载生成器。换句话说,生成器不会像第一个示例中使用return Response()
立即返回,而是等待用户。在
总而言之,我主要想做的两件事是:
<a href={{generator}}></a>
或类似的东西)
HTTP协议是无状态的,你所要求的是不可撤销的。在您发出请求之前,服务器不知道您在做什么,而附加到客户机的唯一数据是随请求发送的数据。在
生成器是python对象,因此不能像您建议的那样集成到HTML页面或链接中。你可以使用生成器链接到应用程序中流式传输内容的部分,但不能使用生成器作为链接,这是没有意义的。在
下面的片段描述了您可以做的最接近的操作。没有编写实际的代码,我只是用注释向您展示体系结构。在
相关问题 更多 >
编程相关推荐