Django 创建CSV文件
Django使用Python内置的CSV库来创建动态的CSV(逗号分隔值)文件。我们可以在项目的视图文件中使用这个库。
让我们来看一个例子,这里我们有一个Django项目,我们正在实现这个功能。创建一个视图函数 getfile() 。
Django CSV例子
在这个例子中,我们使用静态数据创建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
为该函数提供URL。
path('csv',views.getfile)
在执行到浏览器时,它呈现一个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
输出结果:
保存文件并在包含以下数据的文本编辑器中打开。
这些数据是从员工表中取回的,下面是表的快照。
嗯,我们已经看到这个库非常有用,可以创建动态的CSV文件。现在,在需要的时候将其应用到Django项目中。