Django下载文件

作者: MA木易YA | 来源:发表于2018-11-09 22:42 被阅读0次

继上文的上传后,终于到了下载模块,因为只是简单实现,所以就不存在那么多复杂的流程了,也没有自己定义模板什么的,之前一直纠结于怎么实现自动弹窗让你选择文件存储路径,后来才了解到那是根据浏览器支持情况而定,一直纠结于后台实现,因为之前的python代码块包括阿里云sdk里的支持都是要先定义好路径和文件名然后直接下载的,话不多说,上代码

表单

属性设置基本和前文一样,我在html里面的audio标签里面添加了id属性,其实必要性也不大,不过可以增加代码可读性嘛,跟这里的下载操作关联不大我就没有嵌代码了,因为我的音乐播放器是js实现的,所以这里用requests库获取到当前audio里面的src属性值即可,主要就是获取到src值供后端操作

<form enctype="multipart/form-data" action="{% url 'download' %}?from={{ request.get_full_path }}" method="post">
                {% csrf_token %}
                <input type="submit" value="下载">
 </form>

views.py

无关操作就隐去了,主要就是打开要下载的文件,我是从src获取到文件名从而获取到文件对象,此处设计爬虫与oss的相关细节不做赘述,反正就是读取待下载文件,然后设定一些响应属性,filename那里可以指定默认文件名,返回响应即可,百度应该会给出基本的三大类型的django文件下载方式,这种是最推荐的,支持大小文件而且避免了缓存等问题的异常,大家可以去尝试一下

def download_file(request):
    referer = request.META.get('HTTP_REFERER', reverse('home'))
    #url = "http://127.0.0.1:8000/"
    #html = getHTMLText(url)
    #src = get_data(html)
    #file_name = unquote(src, 'utf-8').split('com/')[1]
    #os.chdir(‘../static/cloud’)
    #bucket.get_object_to_file(file_name, file_name)

    file = open(file_name, 'rb')
    response = FileResponse(file)
    response['Content-Type'] = 'application/octet-stream'
    response['Content-Disposition'] = 'attachment;filename="example.tar.gz"'
    return response
    return redirect(request.GET.get('from', reverse('home')))

相关文章

  • django文件的下载

    django提供文件下载时,若果文件较小,解决办法是先将要传送的内容全生成在内存中,然后再一次性传入Respons...

  • Django 实现文件下载

    上篇有【文件上传】,算是完成了一个比较完整的项目。 1.下载页面 2.下载页面代码 4.URL配置 3.下载页面前端代码

  • Django下载文件

    继上文的上传后,终于到了下载模块,因为只是简单实现,所以就不存在那么多复杂的流程了,也没有自己定义模板什么的,之前...

  • Django下载pdf文件

    导出pdf的需求,可以说不难实现,但根据项目要求,页面上存在js渲染的表格,直接用wkhtmltopdf没办法生成...

  • MocOs:Django(搭建和模型创建)

    打开终端创建一个虚拟环境 下载django环境 配置django里的settings信息 配置静态文件打开/dem...

  • Django_跨域解决方案

    Django 版本:2.0.2 1.下载中间件: 推荐通过pycharm下载: 或者通过: 2.增加配置文件

  • Django的一些基本命令

    Django的基本命令:Windows里下载好Django源码后在cmd里切入文件夹中,然后执行python se...

  • Django实现文件下载-FileResponse

    最近在做公司的一个版本发布的平台,要求把版本更新的文件链接都存放到一个txt文件中以便于下载下来,平台是采用pyt...

  • django下载文件,从FTP获取文件

    环境:django+vue 一:从FTP下载文件: 原因:由于FTP需要登录无法从直接从FTP直接获取文件,解决:...

  • 02_Django简介

    一、安装下载Django 1、下载Django 方式一:在命令行输入:pip3 install django​ ...

网友评论

    本文标题:Django下载文件

    本文链接:https://www.haomeiwen.com/subject/qjsaxqtx.html