django实现客户端文件下载

基于django项目,因为不是专门讲文件的下载,这里仅是项目须要,因此可能不是特别的详细。仅作流程的演示:前端

实现过程:django

一、准备下载url服务器

 # 下载文件
    url(r'^download_file/$', downloadFile.DownloadFile.as_view(), name='download_file'),

二、视图类(部分代码)app

from django.http import FileResponse
class DownloadFile(View,Excel):
    '''
    实现客户端从服务器端下载文件
    '''
    def get(self,request):
        '''
        将Excel文件发送给客户端,客户端进行下载。
        :param request:
        :return:
        '''
        # 一、获取要写入Excel表中的数据
        records = self.get_records()
        # 二、服务器先生成Excel数据,并保存在本地
        file_path = self.wite_to_excel('test',records)
        # 三、将数据以流的方式发给客户端
        file = open(file_path, 'rb')
        response = FileResponse(file)
        # 3.1设置响应头,客户端下载文件到本地
        response['Content-Type'] = 'application/octet-stream'
        response['Content-Disposition'] = f'attachment;filename={os.path.basename(file_path)}'
        return response

 上述代码咱们只从第三步开始看便可,第三步上面是我要发送的数据(Excel数据),你根据本身的实际状况准备要发送的数据,而后执行第三步使用open函数以二进制的方式读取文件等接着往下执行便可。函数

三、前端页面(部份内容)url

<a href="{% url 'download_file' %}" class="btn btn-sm btn-success pull-right">导出数据</a>

 

四、最终我项目的效果以下所示。spa

相关文章
相关标签/搜索