如何让 Django 填充一个 html 模板,然后让用户下载它而不在浏览器中显示它?

Posted

技术标签:

【中文标题】如何让 Django 填充一个 html 模板,然后让用户下载它而不在浏览器中显示它?【英文标题】:How to let Django fill an html template, then let the user download it without showing it in browser? 【发布时间】:2017-01-24 10:26:47 【问题描述】:

我有一个 html 模板,我希望 django 用一些数据填充它,但不是将用户重定向到使用该模板的视图,而是希望 Django 将填充的模板作为下载文件发送给用户. 有什么建议吗?

【问题讨论】:

有什么建议吗? - 使用谷歌? 除了不尝试任何东西...为什么?我曾希望 2016 年将继续帮助摆脱文件世界.. 我正在开发一个执行某些功能的工具,我需要将结果作为 html 输出,但我需要在其他地方打开它,而不是在用户使用服务的页面上,当然我会让用户下载它和其他文件。 【参考方案1】:

您创建了一个常规视图,但在返回响应之前,您设置了 HTTP 标头Content-Disposition

def download_form(request):
    form = ...
    response = render(request, 'form_template.html', 'form': form)
    response['Content-Disposition'] = 'attachment; filename="form.html"'
    return response

【讨论】:

以上是关于如何让 Django 填充一个 html 模板,然后让用户下载它而不在浏览器中显示它?的主要内容,如果未能解决你的问题,请参考以下文章

在 django 模板中单击按钮后如何填充表格?

使用 django 模板将 json 填充到 html

如何从 Django 模板变量填充 jQuery Datepicker 小部件?

如何从 Django 模板中的 API 响应转换日期

django:如何在模板 html 页面内进行计算?

如何将值从 django 模板化 html 传递到 ajax