# 文件下载
Django可直接在视图函数中生成**csv**文件 并响应给浏览器
```python
import csv
from django.http import HttpResponse
from .models import Book
def make_csv_view(request):
response = HttpResponse(content_type=‘text/csv‘)
response[‘Content-Disposition‘] = ‘attachment; filename="mybook.csv"‘
all_book = Book.objects.all()
writer = csv.writer(response)
writer.writerow([‘id‘, ‘title‘])
for b in all_book:
writer.writerow([b.id, b.title])
return response
```
- 响应获得一个特殊的MIME类型*text / csv*。这告诉浏览器该文档是CSV文件,而不是HTML文件
- 响应会获得一个额外的`Content-Disposition`标头,其中包含CSV文件的名称。它将被浏览器用于“另存为...”对话框
- 对于CSV文件中的每一行,调用`writer.writerow`,传递一个可迭代对象,如列表或元组。
原文:https://www.cnblogs.com/chenlulu1122/p/11980746.html