>백엔드 개발 >파이썬 튜토리얼 >Django_python에서 파일을 다운로드하는 세 가지 방법에 대한 자세한 설명

Django_python에서 파일을 다운로드하는 세 가지 방법에 대한 자세한 설명

不言
不言원래의
2018-04-08 11:22:192325검색

이 글에서는 주로 Django에서 파일을 다운로드하는 세 가지 방법을 자세히 소개하고 있습니다. 편집자가 꽤 좋다고 생각해서 지금 공유하고 참고용으로 올려드리겠습니다. 에디터를 따라가며 함께 살펴볼까요

1. 개요

실제 프로젝트에서는 엑셀, PDF 가져오기, 파일 다운로드 등 다운로드 기능을 사용해야 하는 경우가 종종 있습니다. 직접 구축할 수 있는 웹 서비스 nginx 등 다운로드에 사용할 수 있는 리소스 서버 여기서는 주로 django의 파일 다운로드에 대해 소개합니다.

구현 방법: 태그 + 응답 헤더 정보(물론 양식 구현을 선택할 수 있음)

<p class="col-md-4"><a href="{% url &#39;download&#39; %}" rel="external nofollow" >点我下载</a></p>

방법 1: HttpResponse

라우팅 URL 사용:

url(r&#39;^download/&#39;,views.download,name="download"),

views. 파이 코드

from django.shortcuts import HttpResponse
def download(request):
  file = open(&#39;crm/models.py&#39;, &#39;rb&#39;)
  response = HttpResponse(file)
  response[&#39;Content-Type&#39;] = &#39;application/octet-stream&#39; #设置头信息,告诉浏览器这是个文件
  response[&#39;Content-Disposition&#39;] = &#39;attachment;filename="models.py"&#39;
  return response

방법 2: StreamingHttpResponse

사용

rreee

사용 요약

django 공식 홈페이지에는 3가지 http response 객체가 소개되어 있습니다. 입구: https://docs.djangoproject.com/en/1.11/ref/request-response/

입니다. FileResponse를 사용하는 것이 좋습니다. FileResponse는 데이터 스트리밍을 위해 내부적으로 반복자를 사용하는 StreamingHttpResponse의 하위 클래스라는 것을 소스 코드에서 볼 수 있습니다.

위 내용은 Django_python에서 파일을 다운로드하는 세 가지 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.