社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  问与答

Django如何实现文件下载?

傅道集-weibo • 10 年前 • 14925 次点击  

我想要完成这个功能:一个选课系统中,教师将该课程的学生信息从数据库导出,并保存在自定义的新文件下(这个文件的名字和保存位置可以由教师自行决定), 请问谁能给个思路应该怎么解决这个问题呢?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/126
 
14925 次点击  
文章 [ 3 ]  |  最新文章 7 年前
Py站长
Reply   •   1 楼
Py站长    7 年前

@小白河 增加一个域来记录下载次数,每次下载时 都+1

小白河
Reply   •   2 楼
小白河    7 年前

如果还要实现下载计次该如何实现呢?

Py站长
Reply   •   3 楼
Py站长    10 年前

可以使用以下函数来解决文件来传输:

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

    def readFile(fn, buf_size=262144):
        f = open(fn, "rb")
        while True:
            c = f.read(buf_size)
            if c:
                yield c
            else:
                break
        f.close()

    file_name = "big_file.txt"
    response = HttpResponse(readFile(file_name))

    return response

上面的方法可以解决文件的下载问题,并且,对于大文件的下载也是没有问题的。

具体可参见: http://oldj.net/article/django-big-file-response/

关于yield的用法 可参见: http://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/