Django文件下载?

时间:2017-10-08 12:48:58

标签: python django django-templates django-rest-framework django-views

我有两个观点" ans_page"和"下载",其中" ans_page"生成一个文件(library.csv)到一个目录"输出",进一步" ans_page"渲染一个名为" ans.html"的html页面它显示了一个包含数据的表和一个位于表下方的按钮,用于从目录下载文件"输出"这是一个名为 FragBuild 的应用程序的一部分,按钮提供了一个超链接,该超链接与" Downloads"查看URL,我的期望是,如果有人点击下载按钮,它应该开始下载,但它显示错误,而不是像下面给出的那样:

查看

def Downloads(request):

    file_path = os.path.join(os.path.split(os.path.abspath(__file__))[0],'output','library.csv')
    file_wrapper = FileWrapper(file(file_path,'rb'))
    file_mimetype = mimetypes.guess_type(file_path)
    response = HttpResponse(file_wrapper, content_type=file_mimetype )
    response['X-Sendfile'] = file_path
    response['Content-Length'] = os.stat(file_path).st_size
    response['Content-Disposition'] = 'attachment; filename=%s' % smart_str('library.csv') 

和这样的网址:

url(r'^ans_page/Downloads$', views.Downloads, name='Downloads'),

html中的按钮可以启动下载,如下所示:

<div class="">
     <button class="btn btn-primary" style="width:40; margin-bottom: 30px; margin-left: 300px "><a href="{% url 'Downloads' %}"> Download Peptide as CSV file  </a> </button>
</div>

但是当我点击按钮开始下载时,它显示错误:

  

/ ans_page / Downloads的ValueError   视图FragBuild.views.Downloads没有返回HttpResponse对象。它改为返回None。

我怎么能解决这个问题呢?我经常挣扎。

0 个答案:

没有答案