Django使用Python內置的CSV庫來創建動態的CSV(逗號分隔值)文件。我們可以在項目的視圖文件中使用這個庫。
讓我們來看一個例子,這里我們有一個Django項目,我們正在實現這個功能。創建一個視圖函數?getfile()?。
Django CSV例子
在這個例子中,我們使用靜態數據創建CSV。
// Views.py
import csvdef getfile(request):response = HttpResponse(content_type='text/csv')response['Content-Disposition'] = 'attachment; filename="file.csv"'writer = csv.writer(response)writer.writerow(['1001', 'John', 'Domil', 'CA'])writer.writerow(['1002', 'Amit', 'Mukharji', 'LA', '"Testing"'])return response
Python
Copy
// urls.py
為該函數提供URL。
path('csv',views.getfile)
Python
Copy
在執行到瀏覽器時,它呈現一個CSV文件。參見示例。
除了靜態數據,我們還可以從數據庫獲取CSV文件。請看下面的示例,我們通過使用?Employee?模型從表中獲取數據。
使用數據庫生成動態CSV文件
// views.py
from myapp.models import Employee import csv
def getfile(request):response = HttpResponse(content_type='text/csv')response['Content-Disposition'] = 'attachment; filename="file.csv"'employees = Employee.objects.all()writer = csv.writer(response)for employee in employees:writer.writerow([employee.eid,employee.ename,employee.econtact])return response
Python
Copy
輸出結果:
保存文件并在包含以下數據的文本編輯器中打開。
這些數據是從員工表中取回的,下面是表的快照。
嗯,我們已經看到這個庫非常有用,可以創建動態的CSV文件。現在,在需要的時候將其應用到Django項目中