一周学会Django5 Python Web开发-Django5二进制文件下载响应

锋哥原创的Python Web开发 Django5视频教程:

2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计25条视频,包括:2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~、第2讲 Django5安装、第3讲 Django5创建项目(用命令方式)等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV14Z421z78C/响应内容除了返回网页信息外,还可以实现文件下载功能,是网站常用的功能之一。

Django提供三种方式实现文件下载功能,分别是HttpResponse、StreamingHttpResponse和 FileResponse,三者的说明如下:

  • HttpResponse是所有响应过程的核心类,它的底层功能类是HttpResponseBase。

  • StreamingHttpResponse是在 HttpResponseBase的基础上进行继承与重写的,它实现流式响应输出(流式响应输出是使用Python的迭代器将数据进行分段处理并传输的),适用于大规模数据响应和文件传输响应。

  • FileResponse是在StreamingHttpResponse 的基础上进行继承与重写的,它实现文件的流式响应输出,只适用于文件传输响应。

我们通过实例来看下如何应用:

我们准备一个文件,这里我们用一个exe二进制文件。放D盘根目录。

views.py里写方法实现方法:

# 定义文件路径
file_path = "D:\\360zip_setup.exe"def download_file1(request):file = open(file_path, 'rb')  # 打开文件response = HttpResponse(file)  # 创建HttpResponse对象response['Content_Type'] = 'application/octet-stream'response['Content-Disposition'] = 'attachment;filename=file1.exe'return responsedef download_file2(request):file = open(file_path, 'rb')  # 打开文件response = StreamingHttpResponse(file)  # 创建StreamingHttpResponse对象response['Content_Type'] = 'application/octet-stream'response['Content-Disposition'] = 'attachment;filename=file2.exe'return responsedef download_file3(request):file = open(file_path, 'rb')  # 打开文件response = FileResponse(file)  # 创建FileResponse对象response['Content_Type'] = 'application/octet-stream'response['Content-Disposition'] = 'attachment;filename=file3.exe'return response

urls.py里定义下映射:

path('download1', helloWorld.views.download_file1),path('download2', helloWorld.views.download_file2),path('download3', helloWorld.views.download_file3)

为了方便测试,我们static目录下新建一个download.html静态文件:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>下载测试</title>
</head>
<body>
<a href="/download1">下载测试一:HttpResponse</a><br>
<a href="/download2">下载测试二:StreamingHttpResponse</a><br>
<a href="/download3">下载测试三:FileResponse</a>
</body>
</html>

页面输入:http://127.0.0.1:8000/static/download.html 测试:

分别点击下载测试:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2807330.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

C# EF Core迁移数据库

现象&#xff1a; 在CodeFirst时&#xff0c;先写字段与表&#xff0c;创建数据库后&#xff0c;再添加内容 但字段与表会变更&#xff0c;比如改名删除增加等 需求&#xff1a; 当表字段变更时&#xff0c;同时变更数据库&#xff0c;执行数据库迁移 核心命令 Add-Migrat…

汽车大灯尾灯灯罩裂了可以修复吗?汽车大灯尾灯裂缝修复用什么胶?拆开的灯罩用什么胶合壳密封?

随着科学技术的不断发展&#xff0c;汽车大灯尾灯破损是可以修的。 TADHE车灯无痕修复专用UV胶是一种经过处理的UV树脂胶&#xff0c;主要成份是改性丙烯酸UV树脂。应用在车灯的专业无痕修复领域。 其具备环氧树脂胶优点的同时&#xff0c;还有如下特点&#xff1a; 固化时间…

什么是智慧公厕?智慧公厕改善城市环境,提升居民生活质量

智慧公厕是指通过信息化、数字化和智慧化技术手段&#xff0c;对公共厕所进行高效管理和服务。它利用先进的科技手段&#xff0c;提升城市环境、改善居民生活质量&#xff0c;成为现代城市建设的重要组成部分。下面将以智慧公厕源头厂家广州中期科技有限公司&#xff0c;大量精…

AR汽车行业解决方案系列之2-远程汽修

在汽车行业中&#xff0c;AR技术的应用正悄然改变着整个产业链的运作方式&#xff0c;应用涵盖培训、汽修、汽车售后、PDI交付、质检以及汽车装配等&#xff0c;AR技术为多个环节都带来了前所未有的便利与效率提升。 安宝特AR将以系列推文的形式为读者逐一介绍在汽车行业中安宝…

基于springboot+vue的租房管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

nginx之web服务器 页面配置

4.3.8 自定义 错误页面 我们 可以改变 默认的错误页面&#xff0c;同时也可以用指定的响应状态码进行响应, 可用位置&#xff1a;http, server, location, if in location 格式&#xff1a; error_page code ... [[response]] uri; 页面错误代码 error_page 固定写法 c…

vue3中ref创建变量取值时自动补充 .value 插件 volar

插件 TypeScript Vue Plugin (Volar) 设置中配置

【安装】CentOS 7 使用 OUI 图形界面安装 Oracle Database 19.3

需安装使用 X Server 协议的软件&#xff08;如 Xorg&#xff09;和如桌面图形软件&#xff08;Gnome 或 KDE&#xff09;。 使用 root 用户执行&#xff1a; # curl -o oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/l…

Vulhub 靶场 DC-7解析

一、环境搭建 kali的靶攻击机IP地址&#xff1a;192.168.200.14 DC-7靶机的IP地址&#xff1a;暂时未知 注意&#xff1a;靶机和攻击机应处于一个网卡下 通过MAC地址判断靶机DC-7的IP 地址 二、信息收集 1、探索网段内存活的主机 第一种方式&#xff1a; arp-scan -l 第…

【深入理解设计模式】原型设计模式

原型设计模式 原型设计模式&#xff08;Prototype Pattern&#xff09;是一种创建型设计模式&#xff0c;它允许通过复制已有对象来创建新对象&#xff0c;而无需直接依赖它们的具体类。这种模式通常用于需要频繁创建相似对象的场景&#xff0c;以避免昂贵的创建操作或初始化过…

南邮概率统计与随机过程练习册答案

**南京邮电大学** **概率统计与随机过程练习册答案简介** 本文档是一份精心整理的南京邮电大学概率统计与随机过程课程的练习册答案集。它旨在为学习该课程的学生提供一个详尽的解题参考,帮助他们更好地理解和掌握概率论与统计学的基本概念和方法。 **内容概览:** - **章节…

990-03产品经理与程序员:什么是 IT 与业务协调以及为什么它很重要?

What is IT-business alignment and why is it important? 什么是IT-业务一致性&#xff1f;为什么它很重要&#xff1f; It’s more important than ever that IT and the business operate from the same playbook(剧本). So why do so many organizations struggle to ach…

liunx gcc编译器 以及编译过程

liunx编译器gcc 编译过程 编译过程gccgcc的条件编译gcc 编译指令动态库和静态库 编译过程 预处理 &#xff08;1&#xff09;将所有的#define删除&#xff0c;并且展开所有的宏定义。说白了就是字符替换 &#xff08;2&#xff09;处理所有的条件编译指令&#xff0c;#ifdef …

信息安全计划:它是什么、为什么需要一个以及如何开始

每个组织都需要一个信息安全计划&#xff0c;因为数据已成为世界上最有价值的商品。与所有珍贵的东西一样&#xff0c;数据受到管理机构的严格监管&#xff0c;并且受到每个人&#xff08;包括骗子&#xff09;的觊觎。这就是网络犯罪不断增加的原因——与日益严格的合规环境同…

pdffactory pro 8中文破解版

详细介绍 PdfFactory&#xff0c;PDF文档虚拟打印机&#xff0c;无须Acrobat即可创建Adobe PDF文件&#xff0c;创建PDF文件的方法比其他方法更方便和高效。支持将多个文档整合到一个PDF文件、增加字体和便签、PDF加密、去水印、压缩优化。 FinePrint&#xff0c;Windows虚拟…

DAY29--learning English

一、积累 1.sign up for 2.business trip 3.calendar 4.acne 5.band-aid 6.scar 7.prescription 8.pimple 9.saucy 10.slurp 11.germaphobe 12.shred 13.boggle 14.platser 15.lick 16.sling 17.smack 18.stereotype 19.salmon 20.cable 二、练习 1.牛津原译 calendar. /ˈk…

【编译原理】第五章课后习题(王原生第三版)

前言 课本&#xff1a; 编译原理&#xff08;第三版&#xff09;[王生原、董渊…等编著]习题&#xff1a; 主要习题内容是第一章到第八章&#xff0c;具体内容如下表 章节内容链接第一章课后部分选择题https://blog.csdn.net/Zchengjisihan/article/details/136243955第二章课…

Linux的进程

在Linux中&#xff0c;可以使用多种方式来结束进程。以下是8种常见的方式&#xff1a; 终端中断&#xff08;Ctrl C&#xff09;&#xff1a;在终端中运行的程序可以通过按下Ctrl C组合键来发送SIGINT信号&#xff0c;终止该进程的执行。 kill命令&#xff1a;使用kill命令可…

仿12306校招项目业务一(支付)

业务流程 1. 用户发起支付 当用户抢到票后&#xff0c;开始发起订单支付请求&#xff0c;假设选择支付宝作为支付方式&#xff0c;支付流程如下。 2. 支付结果回调 当用户支付完一笔订单&#xff0c;支付宝付款渠道接收到支付结果后&#xff0c;对请求支付的系统进行支付结果…

线程池(ThreadPoolExecutor,as_completed)和scrapy框架初步构建——学习笔记

用法1&#xff1a;map函数 with ThreadPoolExecutor() as pool: results pool.map(craw,utls)for result in results:print(result) 1.Scrapy框架&#xff1a; 五大结构&#xff1a;引擎&#xff0c;下载器&#xff0c;爬虫&#xff0c;调度器&#xff0c;管道&#x…