📅  最后修改于: 2020-12-31 00:49:38             🧑  作者: Mango
Django使用Python的内置CSV库创建动态CSV(逗号分隔值)文件。我们可以在项目的视图文件中使用该库。
让我们看一个例子,这里有一个我们正在实现此功能的Django项目。创建一个视图函数getfile() 。
在此示例中,我们使用静态数据创建CSV。
// Views.py
import csv
def 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
// urls.py
提供该函数的网址。
path('csv',views.getfile)
在执行到浏览器时,它将呈现CSV文件。参见示例。
除了静态数据,我们也可以从数据库中获取CSV。请参阅下面的示例,其中我们使用Employee模型从表中获取数据。
// 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
输出:
保存文件并打开包含以下数据的文本编辑器。
从表employee中检索此数据,表快照如下所示。
好了,我们已经看到该库对于创建动态CSV文件非常有用。现在,在需要时将其实现到Django项目中。