08/02/2020 XI1SjuHH6c

장고 – downloadview는 쉽게 장고와 파일을 제공 할 수 있습니다 : 장고 파일 전송을 사용하면 추상적 인 방법으로 업로드 및 다운로드를 처리 재사용 장고 응용 프로그램을 작성할 수 있습니다. Django의 자체 파일 업로드 및 저장소 API만으로는 (1) 파일 다운로드 메커니즘을 제공하지 않으며 (2) 많은 리소스를 먹고 앱 엔진 Blobstore 또는 비동기 Amazon S3 업로드와 같은 클라우드 서비스와 호환되지 않는 직접 업로드만 처리할 수 있기 때문에 너무 제한적입니다(파일이 장고를 통해 파이프되지 않고 S3로 직접 전송되는 경우). 장고 파일 전송이 들어오는 곳입니다. 앱에서 장고의 파일필드 및 모델양식을 계속 사용할 수 있습니다. 파일 처리 보기 및 템플릿에 몇 가지 매우 간단한 API 호출을 추가하고 settings.py 통해 장고 파일 전송 백 엔드를 선택하기만 하면 됩니다. 이를 통해 파일 호스팅 또는 X-Sendfile 메커니즘을 위한 클라우드 서비스를 투명하게 지원할 수 있습니다. 기본 업로드 백 엔드는 수정되지 않은 URL을 반환합니다. 기본 다운로드 백 엔드는 Django를 통해 파일을 청크로 전송하므로 가장 효율적인 메커니즘은 아니지만 적은 양의 메모리 (대용량 파일에 중요)만 사용하고 파일 개체를 응답에 직접 전달하는 것보다 적은 리소스가 필요합니다. 기본 공개 다운로드 백 엔드는 단순히 없음을 반환합니다. 이 기본 구성은 거의 모든 서버에서 작동하지만 가장 효율적인 솔루션은 아닙니다.

장고 파일 전송과 함께 제공되는 백엔드를 살펴보고 솔루션에 더 적합한지 확인하십시오. serve_file() 기능은 주로 개인 파일 다운로드를 처리하지만 일부 구성에서는 파일 호스팅 솔루션이 공개적으로 액세스할 수 있는 URL(예: App Engine Blobstore)을 제공하지 않기 때문에 공용 다운로드를 처리해야 할 수도 있습니다. 즉, 공개 다운로드만 있는 경우에도 해당 함수를 대체로 사용해야 합니다. 이 함수는 두 가지 필수 인수를 사용합니다: 요청 및 제공되어야 하는 Django File 개체(예: FileField): 추가 지침은 설치 가이드를 참조하십시오. 방금 설치한 Django 버전에 해당하는 설명서를 읽어보세요. 최신 의 가장 큰 장고 버전은 우리의 Git 리포지토리 (우리의 개정 제어 시스템)에있는 하나입니다. 이는 정식 릴리스 전에 들어오는 변경 사항을 시도하고 버그를 식별하는 데 도움이 되는 숙련된 사용자만 사용할 수 있습니다. Git이 필요한 이 셸 명령을 사용하여 가져옵니다: 브라우저에 응답을 다운로드 가능한 파일로 처리하도록 지시합니다. 콘텐츠 유형 헤더도 포함되어 있다는 것을 알게 된 적습니까? 이것은 우리가 브라우저또는 다른 말로 그 마임 유형에 보내는 파일의 종류를 알려줍니다. 헤더가 설정되지 않은 경우 장고는 텍스트 / HTML로 설정합니다.

mimetypes.guess_type 파일의 마임 유형을 추측하려고하는 편리한 기능이지만 파일의 mime 유형을 미리 알고 있다면 수동으로 설정하는 것이 좋습니다. FileField 또는 ImageField를 사용하는 경우 Django는 해당 파일을 처리하는 데 사용할 수 있는 API 집합을 제공합니다. 그리고 다른 장고 사용자와 장고 개발자들이 서로 를 돕기 위해 어울리는 장고 사용자 메일링 리스트에 가입하십시오. 기본적으로 Django는 MEDIA_ROOT 및 MEDIA_URL 설정을 사용하여 파일을 로컬에 저장합니다. 아래 예제에서는 이러한 기본값을 사용하고 있다고 가정합니다.