使用按钮从Django Project root下载文件

时间:2017-03-08 12:37:06

标签: python django excel csv reddit

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

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

当用户:

  1. 在框中写了一个subreddit名称
  2. 按下“获取数据”按钮
  3. 会发生什么:

    1. 它创建了一个test.csv(保存在项目的根目录中)
    2. 使用Praw
    3. 检索数据
    4. 将数据插入.csv
    5. 呈现的数据供用户查看
    6. 现在的问题是: 我想要“导出到Excel”按钮,从Django项目的根目录下载生成的文件。

      这是按钮:

      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') ]

      {{1}}

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

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

      提前感谢您的帮助/指导

      方便的链接:

      Link 1

      Link 2

      Link 3

      Link 4

1 个答案:

答案 0 :(得分:2)

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

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

取自http://test.deurengigant.nl/content/voorwaarden.htm