gpt4 book ai didi

python - 使用按钮从 Django 项目根下载文件

转载 作者:行者123 更新时间:2023-11-30 22:41:12 25 4
gpt4 key购买 nike

所以,这是我使用 Django 1.8 创建 atm 的网页: enter image description here

希望用户能够将数据导出为 .csv。

当用户:

  1. 在框中写下 Reddit 子版 block 名称
  2. 按下“获取数据”按钮

发生了什么:

  1. 它创建了一个 test.csv(保存在项目的根目录中)
  2. 使用 Praw 检索数据
  3. 数据已插入到 .csv
  4. 呈现数据供用户查看

现在的问题是:我想要带有“导出到 Excel”的按钮,以从 Django 项目的根目录下载生成的文件。

这是按钮:

 <form class="export_excel" id="login_form" action="/app/export">
{% csrf_token %}
<button class="btn btn-lg btn-primary btn-block" value="Export to Excel" type="submit">Export To Excel</button>
</form>

这位于app/views.py中:

def export(request):

filename = "test.csv" # this is the file people must download

response['Content-Disposition'] = 'attachment; filename=' + filename
response['Content-Type'] = 'application/vnd.ms-excel; charset=utf-16'
return response

这位于app/urls.py中:

# app/urls.py
from django.conf.urls import url
from . import views

# Create your urls here.
urlpatterns = [
(...)
url(r'^export/$', views.export, name='export')
]

这是我点击按钮时遇到的错误: enter image description here

问题是:如何让用户使用按钮导出文件?我做错了什么?

预先感谢您的帮助/指导

方便的链接:

Link 1

Link 2

Link 3

Link 4

最佳答案

您必须首先创建 response 对象才能为其分配 header 。

def export(request):
filename = "test.csv" # this is the file people must download
with open(filename, 'rb') as f:
response = HttpResponse(f.read(), content_type='application/vnd.ms-excel')
response['Content-Disposition'] = 'attachment; filename=' + filename
response['Content-Type'] = 'application/vnd.ms-excel; charset=utf-16'
return response

取自 here

关于python - 使用按钮从 Django 项目根下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42671585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com