前言开发一个文件下载功能,在页面上点下载按钮,可以下载一个文件,如excel,word,pdf等 前端模板前端页面写一个a标签,href地址对应接口下载接口地址:/downpdf <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>down file</title> </head> <body>
<h3>下载文件功能开发</h3>
<a href="/downpdf">点我下载</a>
</body> </html> 待下载的文件放到static目录,如:python1.pdf
views.py视图函数下载文件使用FileResponse,添加返回头部参数Content-Type和Content-Disposition from MyDjango.settings import BASE_DIR from django.views import View from django.http import FileResponse, HttpResponse import os # 作者-上海悠悠 QQ交流群:717225969 # blog地址 https://www.cnblogs.com/yoyoketang/
class DownPage(View):
def get(self, request): """访问web页面""" return render(request, 'downfile.html')
class DownPDF(View):
def get(self, request): """下载pdf接口""" # 文件路径 file_path = os.path.join(BASE_DIR, 'static', "python1.pdf") print("11111111111111111111111") print(file_path) file = open(file_path, 'rb') response = FileResponse(file) response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = 'attachment;filename="python1.pdf"' return response 路由设置urls.py设置网页访问地址和文件下载地址 urlpatterns = [ url('^down$', views.DownPage.as_view()), url('^downpdf$', views.DownPDF.as_view()) ] 页面效果web页面访问
点击下载效果 在浏览器直接访问下载地址http://localhost:8000/downpdf 也可以下载 文件名称带中文下载的文件名称带中文的时候,需要转码,转成ISO-8859-1编码 response = FileResponse(file) response['Content-Type'] = 'application/octet-stream' att = 'attachment; filename=python悠悠1.pdf.exe' response['Content-Disposition'] = att.encode('utf-8', 'ISO-8859-1') return response
2021年第八期《python接口web自动化+测试开发》7.17号开学(课程全面升级!) 加量不加价(新增postman, 赠送selenium和python基础2个课)
本期上课时间:7月17号-10月16号,每周六、周日晚上20:30-22:30
|