首先如果有条件的话现将数据接口的数据保存为文件,如保存为".csv"格式的文件:
前端写一个请求,来请求如下这个视图 ,先写将数据保存为.csv文件:
import csv
def file_document(request):
# data为数据 json格式, 其中data字段的list键值为主要的json数据
try:
n = len(data['list'])
with open('123.csv', 'w') as f: # 这个保存的位置为当前位置,看终端目录
fieldnames = {u'PublishSource', u'template',......, u'UID'} #字段名,在接口处查看
writer = csv.DictWriter(f, fieldnames = fieldnames)
writer.writeheader()
for i in range(0, n):
writer.writerow(data['list'][i])
return JsonResponse({'flag': flag, 'result':data}, safe = False)
except:
return JsonResponse({'flag': flag, 'result':'file_document_error'}, safe = False)
将保存的文件在页面上下载导出,先写一个a标签来请求这个视图,url地址自配
<a href="/rw/file_download/" id="file_download">下载</a>
from django.http import FileResponse
# from djangp.shortcuts import HttpResponse 用这个的话下面的FileRsponse就得改,逻辑一样
def file_download(request):
if request.method == 'GET':
try:
file = open('/var/www/html/RobotWriterNew/prod/RobotWriterNew/
manager/Dupton/src/dupton/123.csv', 'rb')
response = FileRsponse(file)
response['Content-Type'] = 'application/octet-stream'
response['Content-Disposition'] = 'attachment;filename="123.csv"'
return response
except Exception as e:
print(e)
return JsonResponse({'flag':flag, 'result':'file_download_error'}, safe=False)