Python+Django实现本地文件在浏览器的下载导出功能(附:通过数据接口实现数据的保存)

首先如果有条件的话现将数据接口的数据保存为文件,如保存为".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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值