Django将本地文件给用户下载

这篇具有很好参考价值的文章主要介绍了Django将本地文件给用户下载。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

访问这个函数,需要传递一个文件的路径,我的方法是通过一个button按钮,发送一个get请求,携带的是文件的路径

导入一些依赖包(非必要)

from django.contrib import messages
from django.shortcuts import render, redirect

messages的作用是设置提示框,这个按需自己设计就好了,不需要就删了

设置提示框可以参考另一篇文章Django后台设置提示框(消息框)_django弹出提示框_gongzairen的博客-CSDN博客

下面就是后端处理的代码,专注于给用户下载文件

其返回的是一个response对象,还没有找到能够直接携带文件对象返回网页的办法

def download_file(request):
    # print(request.GET)
    file_path = request.GET['file_path']
    file_name = os.path.basename(file_path)
    quoted_filename = quote(file_name.encode('utf-8'))

    if not file_path:
        messages.warning(request,'没有文件无法下载!')
        return redirect('所要返回的地址')

    if not os.path.exists(file_path):
        messages.warning(request, '找不到对应文件!')
        return redirect('所要返回的地址')
    # 将文件打开为二进制读取模式
    file = open(file_path, 'rb')
    # 创建一个文件响应对象
    response = FileResponse(file)
    # 设置文件类型
    response['Content-Type'] = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
    # 设置文件名
    response['Content-Disposition'] = f'attachment; filename={quoted_filename}; filename*=utf-8\'\'{quoted_filename}'
    print(response['Content-Disposition'])
    messages.success(request, '下载成功!')
    return response

 文章来源地址https://www.toymoban.com/news/detail-543034.html

到了这里,关于Django将本地文件给用户下载的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Django连接数据库

    mysql -u root -p show databases; 在settings.py文件中进行配置和修改 在models.py文件中进行修改 创建表 执行命令: python manage.py makemigrations python manage.py migrate 条件:在setings保证app已经注册 删除表 当需要删除表时,则再models.py中注释表结构,然后重新执行命令即可。 修改表 新增列的

    2024年04月27日
    浏览(23)
  • [django] django好玩的地方在于,可以批量操作数据库了

    django好玩的地方在于,可以批量操作数据库了。 和数据库快速交互,真的是好厉害。 这种情况怎么过滤 objects.filter project = models.ForeignKey(to=“Project”, verbose_name=‘项目’, on_delete=models.CASCADE, max_length=50, null=False, help_text=‘项目’) mysql json类型的字段 models.JSONField 在django中是什

    2024年02月22日
    浏览(33)
  • Django连接多个数据库

    为了让不同业务的数据分离,落到不同的库,使用 django 连接多个数据库。 Django 使用 default 数据库,如果没有其他选择 default 可以没有,但是必须设置一个空字典 设置多个数据库,需要同步多次。这里比较麻烦。 迁移将会把所有model的所有表镜像的迁移到两个库,自带的指

    2024年02月11日
    浏览(38)
  • Django基本数据库操作

    @ 目录 Django基本数据库操作 👨‍🏫内容一:基本数据库配置 👨‍🔬内容二:ORM基本操作 👉Django是一个流行的Python Web框架,它可以使用不同的数据库引擎来存储和管理数据。Django默认使用sqlite数据库,但是你也可以配置它使用mysql数据库。这里我将配置的是本地的Mysql数据

    2024年02月16日
    浏览(33)
  • Django dumpdata 迁移数据库数据

    本文介绍两种常用的 Django 服务迁移数据方法。 这两种方法都需要在新的服务器部署好数据库,创建好相应的数据库表和用户以后再进行。 针对数据量不是很大的项目,可以使用此方法,操作起来比较简单。 通过连接旧的数据库运行dumpdata导出命令导出数据。 连接上新的数

    2024年02月17日
    浏览(35)
  • Django迁移数据到指定数据库

    在Django中,你可以配置多个数据库,并且可以为不同的操作指定使用不同的数据库。这意味着你确实可以同时将数据保存到SQLite和MySQL数据库中,但这需要你在代码中明确指定每次数据库操作应使用哪个数据库。 首先,你需要在Django设置文件 settings.py 中定义两个数据库连接,

    2024年02月01日
    浏览(29)
  • Django中级指南:理解并实现Django的模型和数据库迁移

    Django 是一个极其强大的 Python Web 框架,它提供了许多工具和特性,能够帮助我们更快速、更便捷地构建 Web 应用。在本文中,我们将会关注 Django 中的模型(Models)和数据库迁移(Database Migrations)这两个核心概念。 在 Django 中,模型是一种特殊的对象,它对应数据库中的一张

    2024年02月13日
    浏览(31)
  • django添加数据库字段进行数据迁移

    1.修改view.py里面的变量 2.在model.py新增字段 3.打开terminal并将环境切到项目所在环境,切换方式为 4.执行命令

    2024年02月09日
    浏览(46)
  • Django 数据库迁移反复出错

    Django 的数据库迁移有非常多问题,尤其是我们引入了一个维护了非常多年的大插件,比方说 wagtail。 这里总结一些常见问题和解决思路,我自己使用的是 MySQL(MariaDB) 首先说明一下 Django 数据迁移的机制 问题 : 1071, \\\'Specified key was too long; max key length is 767 bytes\\\' 解决 :最常见

    2023年04月19日
    浏览(32)
  • Django迁移数据库编码错误

    问题出现在用django的admin组件向数据库添加数据时发生的编码错误 (1366, \\\"Incorrect string value: \\\'\\\\xE5\\\\x8D\\\\x83\\\\xE7\\\\x89\\\\x9B...\\\' for column \\\'title\\\' at row 1\\\") 以为django可以进行数据库的迁移,但是你还是要去手动在mysql中创建一个数据库名,所以在创建的时候没有设定编码格式的话,默认编码

    2024年02月07日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包