django-csv文件下载

# 文件下载

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`,传递一个可迭代对象,如列表或元组。

 

posted @ 2019-12-04 09:04  chenlulu1122  阅读(278)  评论(0)    收藏  举报