代码:

from django.http import StreamingHttpResponse

def big_file_download(request):
    # do something...

    def file_iterator(file_name, chunk_size=):
        with open(file_name) as f:
            while True:
                c = f.read(chunk_size)
                if c:
                    yield c
                else:
                    break

    the_file_name = "big_file.pdf"
    response = StreamingHttpResponse(file_iterator(the_file_name))
    response['Content-Type'] = 'application/octet-stream'
    response['Content-Disposition'] = 'attachment;filename="{0}"'.format(the_file_name)

    return response

参考资料:

http://www.jianshu.com/p/2ce715671340

http://blog.csdn.net/martin_liang/article/details/43286539

http://zhidao.baidu.com/link?url=l2plQ2oAU0A-SJzEH-OwWsLVciU91XlQwMmn3qrXhHkY9XRDFeSv09YAfQpVKZbrmKzOSFLgtA3mGmtTTjgGzJHzMI7u9WpdozQFwxq0fNW

http://www.python88.com/topic/126/

推荐:

http://www.cnblogs.com/linxiyue/p/4187484.html

http://blog.sina.com.cn/s/blog_90bc5fc60102vl7m.html

【Django】Django 文件下载最佳实践的更多相关文章

  1. Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt)

    Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt) 作者: Desmond Chen,发布日期: 2014-05- ...

  2. django 强制登录最佳实践

    参考: https://python-programming.courses/recipes/django-require-authentication-pages/ 即通过中间件来做AOP拦截.不用 ...

  3. 【Python】Django 时间字段 最佳实践

    . python datetime from datetime import datetime datetime.now() datetime.utcnow() from datetime impor ...

  4. Django 1.6 最佳实践: 如何设置和使用 Log(转)

    原文: http://www.weiguda.com/blog/37/ 任何参与过高要求的大型项目的编程人员都明白设置适当的log等级, 创建不同的logger, 记录重要事件的重要性. 正确的设置和 ...

  5. Django 1.6 最佳实践: 如何正确使用 Signal(转)

    原文:http://www.weiguda.com/blog/38/ 如何正确的使用signal: 简单回答是: 在其他方法无法使用的情况下, 才最后考虑使用signal. 因为新的django开发人 ...

  6. Django 1.6 最佳实践: django项目的服务器自动化部署(转)

    原文:http://www.weiguda.com/blog/41/ 当我们设置服务器时, 不应该每次都使用ssh登录服务器, 再按照记忆一步一步的配置. 因为这样实在是太容易忘记某些步骤了. 服务器 ...

  7. Django 大文件下载

    django提供文件下载时,若果文件较小,解决办法是先将要传送的内容全生成在内存中,然后再一次性传入Response对象中: def simple_file_download(request): # ...

  8. 快速web开发中的前后端框架选型最佳实践

    这个最佳实践是我目前人在做的一个站点,主要功能: oauth登录 发布文章(我称为"片段"),片段可以自定义一些和内容有关的指标,如“文中人物:12”.支持自定义排版.插图.建立相 ...

  9. atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 。打开浏览服务器文件夹java .net php

    atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 .打开浏览服务器文件夹java .net php 1. 环境:::项目java web,需要打开浏览服 ...

随机推荐

  1. Laravel - 安装与配置

    有多重途径可以安装Laravel,下面是通过composer安装laravel的方法.Composer 是 PHP 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们.c ...

  2. [Android Pro] listView和GridView的item设置的高度和宽度不起作用

    referece to : http://blog.csdn.net/beibeixiao/article/details/9032569 1.     在Android开发中会发现,有时listVi ...

  3. mongodb 连接和操作

    使用方法: 1.安装mongodb 2.配置环境变量 mac下: export PATH=/Users/sunbey/Documents/learn/mongodb/mongodb-osx-x86_6 ...

  4. httpModules与httpHandlers之httpModules(转载)

    WapModule.cs:public class WapModule:IHttpModule{ public void Init(HttpApplication context)        {  ...

  5. 【优化AC】建立联系

    建立联系 [试题描述] 新学期开始了,不料同学们在假期集体更换了电话,所以同学们只能重新建立联系. 班内一共有n位同学,他们一共建立了m次联系,老师想知道在同学们每次建立完一个联系后,一共有多少对同学 ...

  6. HtmlWeb类

    HtmlWeb类是一个从网络上获取一个HTML文档的类,其提供的功能大多是基于完成此需求出发.现在来来HtmlWeb类有哪些方法以及属性. 一.属性 bool AutoDetectEncoding { ...

  7. SVG之初识

    什么是SVG? 也许现在很多人都听说过SVG的人比较多,但不一定了解什么是SVG:SVG(Scalable Vector Graphics 一大串看不懂的英文)可伸缩矢量图形,它是用XML格式来定义用 ...

  8. Fetching android sdk component information

    原文地址: Android Studio安装以及Fetching android sdk component information超时的解决方案 - sonyi - 博客园 http://www.c ...

  9. eclipse不自动弹出提示(Alt+/ 快捷键失效)

    转自:http://www.cnblogs.com/shaweng/archive/2013/09/26/3340016.html 主要有一下几种方法:    1.次方法用于没有一点提示的情况:依次打 ...

  10. 怎样让老浏览器兼容html5新标签

    CSS样式设置默认样式: <style> article, aside, canvas, details, figcaption, figure, footer, header, hgro ...