在Django Rest Framework中为正在写入的CSV文件创建下载API端点的步骤如下:
import csv
from django.http import HttpResponse
from rest_framework.views import APIView
class DownloadCSV(APIView):
def get(self, request):
# 创建一个CSV文件
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="data.csv"'
# 写入CSV文件的数据
writer = csv.writer(response)
writer.writerow(['Column 1', 'Column 2', 'Column 3'])
writer.writerow(['Data 1', 'Data 2', 'Data 3'])
return response
在上面的代码中,我们创建了一个名为DownloadCSV的类视图,继承自Django Rest Framework的APIView。在get方法中,我们创建了一个HttpResponse对象,并设置其content_type为'text/csv',这样浏览器会将其作为CSV文件来处理。然后,我们设置了Content-Disposition头部,指定文件名为"data.csv"。接下来,我们使用csv.writer将数据写入CSV文件。
from django.urls import path
from .views import DownloadCSV
urlpatterns = [
path('download-csv/', DownloadCSV.as_view(), name='download_csv'),
]
在上面的代码中,我们将URL模式'/download-csv/'映射到DownloadCSV视图。
这是一个简单的示例,你可以根据自己的需求来扩展和定制这个CSV下载API端点。
领取专属 10元无门槛券
手把手带您无忧上云