当前位置: 首页 > 面试题库 >

在一个Flask响应中返回下载并呈现的页面

高锦
2023-03-14
问题内容

我想返回渲染的页面和可下载的文件作为对请求的响应。我试图返回两个响应的元组,但是它不起作用。如何提供下载和页面?

return response, render_template('database.html')
return render_template('database.html'), response

Flask是否有能力应对这种情况?似乎是一个普通问题,我只是想将文件发送回下载,然后呈现页面。


问题答案:

您不能将多个响应返回到单个请求。取而代之的是,生成文件并将其存储在某个位置,并通过另一条路径来提供服务。返回呈现的模板,并提供一个网址以提供该文件的路径。

@app.route('/database')
def database():
    # generate some file name
    # save the file in the `database_reports` folder used below
    return render_template('database.html', filename=stored_file_name)

@app.route('/database_download/<filename>')
def database_download(filename):
    return send_from_directory('database_reports', filename)

在模板中,用于url_for生成下载网址。

<a href="{{ url_for('database_download', filename=filename) }}">Download</a>


 类似资料:
  • 问题内容: 在我的科目表中,我按学期和月份列出了所有学生的课程,每个月的分数 这就是我尝试过的 我从查询中获得的当前输出是每个查询的多个响应,因为我可以将其更改为,但不会获取其他数据 我的问题是我如何将它们合并为一个响应,并在预期的输出中返回以下数据(我在每个字段中添加了一些说明以对其进行解释) 预期产量 问题答案: 问题是,您想获取主题,而不是学生。因此,我反转了FROM和LEFT JOIN。因

  • 问题内容: 例如,此URL: 应该返回一个类型的响应。我有两个静态图片, 如果type为1,则应该返回,否则返回。在烧瓶中怎么做? 问题答案: 你使用类似 发送回或,具体取决于类型查询参数。有关更多信息,请参见函数和对象的文档。

  • 问题内容: 我有一个函数,可使用Pandas分析CSV文件并生成带有摘要信息的字典。我想从Flask视图返回结果作为响应。如何返回JSON响应? 问题答案: 将摘要数据传递给该函数,该函数返回JSON响应。 从Flask 0.11开始,你可以将任何JSON可序列化的类型(不仅是dict)传递为顶级对象。

  • 问题内容: 我正在为该站点(Site1)中的页面编写Greasemonkey脚本。Site1提供各种交易和报价,而我的GM脚本旨在实现以下目的: 当一个人访问Site1上的报价时,脚本会查询 Site2,以查找该酒店是否也在Site2上列出。如果是这样,请在Site1上显示来自Site2的搜索结果。 问题是Site2显示进度条(“正在加载结果”),然后显示结果。因此,我的Ajax请求始终返回空结果

  • 问题内容: 我有一个函数,可使用Pandas分析CSV文件并生成带有摘要信息的字典。我想从Flask视图返回结果作为响应。如何返回JSON响应? 问题答案: 将摘要数据传递给该函数,该函数返回JSON响应。 从Flask 0.11开始,你可以将任何可序列化的类型(不仅是dict)传递为顶级对象。

  • 问题内容: Flask返回响应后,我需要执行一些代码。我认为为它设置像Celery这样的任务队列不够复杂。关键要求是Flask必须在运行此功能之前将响应返回给客户端。它不能等待函数执行。 对此存在一些现有问题,但是在将响应发送到客户端之后,似乎没有一个答案能解决运行任务的问题,它们仍然同步执行,然后返回响应。 问题答案: 长话短说,Flask没有提供任何特殊功能来完成此任务。对于简单的一次性任务,