个性化阅读
专注于IT技术分析

使用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文件。参见示例。

使用django csv示例创建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

输出:

使用数据库使用Django动态csv创建csv

保存文件并打开包含以下数据的文本编辑器。

使用数据库1使用Django动态csv创建csv

从表employee中检索该数据, 表快照如下所示。

使用数据库2使用Django动态csv创建csv

好吧, 我们已经看到该库对于创建动态CSV文件非常有用。现在, 在需要时将其实现到Django项目中。

赞(0)
未经允许不得转载:srcmini » 使用Django创建CSV

评论 抢沙发

评论前必须登录!