django 从零开始 13 返回文件

阅读: 评论:0

django 从零开始 13 返回文件

django 从零开始 13 返回文件

进行一些操作返回文件,flask和django差不多,基本都是在返回response 并且对其中的返回头部写入返回文件信息

 

# image
def image(request):f = open(r'C:UsersAdministratorDesktop反面.jpg','rb').read()return HttpResponse(f,content_type='image/jpg')# csv
import csv
UNRULY_PASSENGERS = [146,184,235,200,226,251,299,273,281,304,203]
def to_csv(request):response = HttpResponse(content_type='text/csv')response['Content-Disposition'] = 'attachment; filename=ceshi.csv' # 下载csv文件名设置filename b不能中文
writer = csv.writer(response)writer.writerow(['Year', 'Unruly Airline Passengers'])for (year, num) in zip(range(1995, 2006), UNRULY_PASSENGERS):writer.writerow([year, num])return response# pdf
from reportlab.pdfgen import canvas
def to_pdf(request):response = HttpResponse(content_type='application/pdf')response['Content-Disposition'] = 'attachment; filename=ceshi_pdf.pdf'p = canvas.Canvas(response)p.drawString(500, 200, "Hello world.")   # 和csv一样,坐标位置是从左下角开始的
p.showPage()p.save()return response# 对大型文件进行一个内存操作,如果内容不大,可以使用上面的办法
from io import BytesIO
from reportlab.pdfgen import canvas
from django.http import HttpResponse
def to_max_pdf(request):response = HttpResponse(content_type='application/pdf')response['Content-Disposition'] = 'attachment; filename=ceshi_max.pdf'temp = BytesIO()           #BytesIO是编码内容保存在内存中
p = canvas.Canvas(temp)p.drawString(100, 100, "Hello world.")p.showPage()p.save()                    response.value())return response

 

转载于:.html

本文发布于:2024-01-29 04:41:46,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170647451112770.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:从零开始   文件   django
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23