Django生成CSV文件

Django可直接在視圖函數中生成csv文件 並響應給瀏覽器

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,傳遞一個可迭代對象,如列表或元組。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章