首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏python3

    django 实现文件下载功能

    响应头信息 下载图片 注意:这里的1指的是MySQL表的主键id 后端实现方式 使用django有三种文件下载方式,分别是HttpResponse,StreamingHttpResponse ,FileResponse 详情,请参考链接 https://www.jb51.net/article/137790.htm 本文主要介绍StreamingHttpResponse实现方式 二、实际操作 download"), ] 修改views.py,增加视图函数 from django.shortcuts import render, HttpResponse from django.http import StreamingHttpResponse                     yield c                 else:                     break     try:         # 设置响应头         # StreamingHttpResponse 将文件内容进行流式传输,数据量大可以用这个方法         response = StreamingHttpResponse(file_iterator(file_path))         # 

    4.3K20发布于 2020-02-18
  • 来自专栏changxin7

    16.Django学习之文件上传和下载

    StreamingHttpResponse是将文件内容进行流式传输,数据量大可以用这个方法 方式2: from django.http import StreamingHttpResponse # def download(request): file=open('crm/models.py','rb') response =StreamingHttpResponse(file) response :https://docs.djangoproject.com/en/1.11/ref/request-response/ 推荐使用FileResponse,从源码中可以看出FileResponse是StreamingHttpResponse

    1.5K20发布于 2019-12-12
  • 来自专栏Kirin博客

    Django 文件下载

    response['Content-Disposition']='attachment;filename="example.tar.gz"' return response 方法二:使用StreamingHttpResponse from django.http import StreamingHttpResponse def file_down(request): file=open('/home/amarsoft /download/example.tar.gz','rb') response =StreamingHttpResponse(file) response['Content-Type 为了更好的实现文件下载,FileResponse对StreamingHttpResponse做了进一步的封装,即StreamingHttpResponse是FileResponse的父类。 而HttpResponse,StreamingHttpResponse,FileResponse三者都继承了基类HttpResponseBase。

    1.5K40发布于 2020-05-21
  • 来自专栏菲宇

    Django之文件上传下载

    对象取代HttpResponse对象,StreamingHttpResponse对象用于将文件流发送给浏览器,与HttpResponse对象非常相似,对于文件下载功能,使用StreamingHttpResponse 因此,更加合理的文件下载功能,应该先写一个迭代器,用于处理文件,然后将这个迭代器作为参数传递给StreaminghttpResponse对象,如:    from django.http import StreamingHttpResponse def download_file(request): def file_iterator(file, chunk_size=512): yield c else: break file = "file_name.txt" response = StreamingHttpResponse 优化很简单,给StreamingHttpResponse对象的Content-Type和Content-Disposition字段赋下面的值即可,如: response['Content-Type']

    4.4K40编辑于 2022-05-06
  • 来自专栏Python基础、进阶与实战

    使用Django构建即时通讯应用的最简单方法

    Django文档StreamingHttpResponse:https://docs.djangoproject.com/zh-hans/4.2/ref/request-response/#streaminghttpresponse-objects StreamingHttpResponse 用于从 Django 向浏览器流式传输响应。 StreamingHttpResponse的使用方法与常规的HttpResponse类似,只需将生成数据的逻辑写入一个生成器函数,并将该函数作为StreamingHttpResponse的参数传入即可 在每次迭代时,StreamingHttpResponse都会将生成器函数的返回值作为响应内容的一部分发送给客户端,直到生成器结束。 (async_generator()) return response Django 3.1的新特性是将StreamingHttpResponse与异步生成器的结合使用。

    81810编辑于 2024-01-09
  • 来自专栏热度技术

    聊点Python:在Django中利用zipfile,StringIO等库生成下载的文件​

    我们在django view中,需要用StreamingHttpResponse这两个类。 完整的代码如下: from django.http import StreamingHttpResponse def big_file_download(request): # do something if c: yield c else: break the_file_name = "big_file.pdf" response = StreamingHttpResponse filename) >>> utilities.to_zip(tmp_dl_path, filename) >>> utilities.close() >>> response = StreamingHttpResponse

    3.1K40编辑于 2023-03-10
  • 来自专栏Python程序员杂谈

    使用 EventSource 实现页面消息推送

    这时演示的写法,正式项目不会这么写的) views.py代码如下: .. code:: python # coding:utf-8 import time from django.http import StreamingHttpResponse from django.utils.timezone import now def eventsource(request): response = StreamingHttpResponse n' % str(now()) # 发送数据 yield u'data: %s\n\n' % str(now()) time.sleep(2) 里面的StreamingHttpResponse

    4.1K40发布于 2019-03-01
  • 来自专栏测试游记

    测试开发进阶(三十六)

    re import os from datetime import datetime from django.conf import settings from django.http import StreamingHttpResponse report_dir, mtch) with open(report_path, 'w') as f: f.write(html) response = StreamingHttpResponse =UTF-8''{}".format(name) return response 每次下载之后我们都会在本地存放一次,然后我们需要以数据流的方式返回html报告 response = StreamingHttpResponse

    50230发布于 2019-11-14
  • 来自专栏授客的专栏

    Django 实现文件上传下载API

    (result, status.HTTP_500_INTERNAL_SERVER_ERROR) 说明: file_response = FileResponse(file),可以在引入StreamingHttpResponse 之后(from django.http import StreamingHttpResponse),替换为 file_response = StreamingHttpResponse(file)

    2.6K31发布于 2020-09-01
  • 来自专栏菲宇

    使用Django输出CSV

    流式传输大尺寸CSV文件¶ 当处理生成大尺寸响应的视图时,你可能想要使用Django的StreamingHttpResponse类。 的生成器来有效处理大尺寸CSV文件的拼接和传输: import csv from django.utils.six.moves import range from django.http import StreamingHttpResponse idx in range(65536)) pseudo_buffer = Echo() writer = csv.writer(pseudo_buffer) response = StreamingHttpResponse

    1.4K30编辑于 2022-12-21
  • 来自专栏信数据得永生

    django 1.8 官方文档翻译: 3-5-1 使用Django输出CSV

    流式传输大尺寸CSV文件 当处理生成大尺寸响应的视图时,你可能想要使用Django的StreamingHttpResponse类。 的生成器来有效处理大尺寸CSV文件的拼接和传输: import csv from django.utils.six.moves import range from django.http import StreamingHttpResponse idx in range(65536)) pseudo_buffer = Echo() writer = csv.writer(pseudo_buffer) response = StreamingHttpResponse

    1.1K30编辑于 2022-11-27
  • 来自专栏菲宇

    django之文件上传下载等相关

    对象取代HttpResponse对象,StreamingHttpResponse对象用于将文件流发送给浏览器,与HttpResponse对象非常相似,对于文件下载功能,使用StreamingHttpResponse as f: while True: c = f.read(chunk_size) if c: yield c else: break file = "file_name.txt" response = StreamingHttpResponse (file_iterator(file)) return response from django.http import StreamingHttpResponse def download_file 优化很简单,给StreamingHttpResponse对象的Content-Type和Content-Disposition字段赋下面的值即可,如: response['Content-Type'] as f: while True: c = f.read(chunk_size) if c: yield c else: break file = "big_file.pdf" response = StreamingHttpResponse

    4.1K30发布于 2019-06-13
  • 来自专栏授客的专栏

    Django 实现文件上传下载API

    Response(result, status.HTTP_500_INTERNAL_SERVER_ERROR) 说明: file_response = FileResponse(file),可以在引入StreamingHttpResponse 之后(from django.http import StreamingHttpResponse),替换为 file_response = StreamingHttpResponse(file) 前端获取响应头中文件名方法如下

    74910编辑于 2025-04-19
  • 来自专栏大猪的笔记

    django:自定义静态文件服务器

    get_real_path 是把相对路径转成硬盘的实际路径,自已实现吧 具体看代码: from django.http import HttpResponse, StreamingHttpResponse (request, path): short_file_name, real_file_path = get_real_path(request, path) response = StreamingHttpResponse

    1.6K10发布于 2019-11-21
  • 来自专栏小脑斧科技博客

    django 动态生成 csv、xls 文件下载

    通过 StreamingHttpResponse 动态生成 CSV 动态生成文件,最常用的就是流式响应,流式响应最大的优势在于其资源的节省与高效。 代码实现也比较简单。 def large_csv_view(request): response = StreamingHttpResponse(content_type='text/csv') response

    3.1K00编辑于 2022-06-27
  • 来自专栏信数据得永生

    django 1.8 官方文档翻译: 3-6-1 中间件概览

    response是Django视图或者中间件返回的HttpResponse或者StreamingHttpResponse对象。 process_response()在所有响应返回浏览器之前被调用。 这个方法必须返回HttpResponse或者StreamingHttpResponse对象。 它可以改变已有的response,或者创建并返回新的HttpResponse或StreamingHttpResponse对象。 处理流式响应 不像HttpResponse,StreamingHttpResponse并没有content属性。所以,中间件再也不能假设所有响应都带有content属性。

    75830编辑于 2022-11-27
  • 来自专栏python3

    vue+django实现下载文件

    download_demo import settings from django.utils.encoding import escape_uri_path from django.http import StreamingHttpResponse     def big_file_download(self,download_file_path, filename):         try:             response = StreamingHttpResponse

    2.3K21发布于 2021-03-04
  • 来自专栏JAVAandPython君

    自己如何开发一个B站视频下载网站?

    urllib.request.install_opener(opener) # 开始下载 try: r = urllib.request.urlopen(url=video_download_url) response = StreamingHttpResponse response except Exception as e: print("这里有个错误:", e) return HttpResponse("error,请返回重新搜索") 这里我是使用StreamingHttpResponse

    1.2K30发布于 2020-04-16
  • 来自专栏程序员的诗和远方

    介绍bigpipe以及bigpipe在django上的实现

    然后就是接收请求的django view: import time from django.http import StreamingHttpResponse from django.template.loader import render_to_string def test(request): return StreamingHttpResponse(stream_response_generator ()) 由于我们不立即返回整个请求,所以并不直接返回HttpResponse对象,而是返回StreamingHttpResponse对象,并且这里的stream_response_generator函数返回的是生成器

    1.7K80发布于 2018-05-02
  • 来自专栏Python七号

    如何仅用 Django 实现反向代理?

    对于二进制文件,使用 StreamingHttpResponse 来减少内存使用。 8、如果用户设置了一组 diazo 规则和一个主题模板,则会在响应正文上应用 diazo/XSLT 转换。

    2K10编辑于 2022-04-07
领券