先说第一个功能文件下载,
Django的HttpResponse直接就能提供下载,所以我们只要打开一个文件,让HttpResponse返回就好了
f=open("test.txt",'r')
a=f.read()
f.close()
response=HttpResponse(a)
return response
有的文件比较大,像上面那样甚至有可能将系统搞崩溃,没关系,可以像下面这样
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
关于yield的用法参见http://www.cnblogs.com/tqsummer/archive/2010/12/27/1917927.html
有的时候上面这样只能展示出来,不能激活浏览器的下载,这需要做一个激活。
在上面return response前面加上这两行代码,