django-downloadview 패키지를 사용하여 프로젝트에 있는 모든 파일을 다운로드 가능하게 만들 수 있습니다. 서버에서 파일을 호스팅할 수 있습니다.
이 기사에서는 Django 프로젝트에서 파일을 다운로드할 수 있도록 하는 방법을 살펴보겠습니다. 재미있는 주제가 될 것이며 여러분도 좋아할 것입니다.
먼저 패키지를 설치하십시오 -
pip install django-downloadview
이제 Django 프로젝트와 앱을 만듭니다. URL을 설정하고 INSTALLED_APPS에 앱 추가와 같은 몇 가지 기본적인 작업을 수행합니다. 또한 settings.py에서 MEDIA_ROOT 및 MEDIA_URL을 설정합니다.
예시
models.py에서 , 다음 줄을 추가하십시오 -
from django.db import models # Create your models here. class Data(models.Model): file=models.FileField(upload_to='myfiles/',blank=True)
여기에서 업로드된 파일의 파일 참조를 저장할 모델을 만들었습니다. 이 모델에 대한 더미 데이터를 생성합니다.
url.py에서 -
from django.urls import path from . import views from django.conf import settings from django.conf.urls.static import static from django_downloadview import ObjectDownloadView from .models import Data download = ObjectDownloadView.as_view(model=Data, file_field= 'file') urlpatterns = [ path('', views.home,name="home"), path('download//', download, name="default"), ] urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
우리는 두 개의 URL 끝점을 만들었습니다. 하나는 프런트엔드를 렌더링하는 것이고 다른 하나는 모델 다운로드 보기가 있는 것입니다. ObjectDownloadView 호스트할 파일의 모델을 사용하는 인스턴스이며 파일이 저장될 필드를 정의했습니다.
views.py에서 -
def home(request): return render(request,'home.html')
여기에서 프론트엔드 html을 렌더링했습니다.
home.html에서 , 다음 코드를 추가하십시오 -
<!DOCTYPE html> <html> <head> <title> TUT </title> </head> <body> <h2>HI</h2> <a href="https://127.0.0.1:8000/download/1/"> Download</a> // '1' is ID of a dummy data of our 'Data' model </body> </html>
여기에서 더미 데이터로 생성한 파일에 대한 참조를 제공했습니다. '1'은 id입니다. 파일이 저장될 모델 인스턴스의
링크를 동적으로 만들 수 있지만 여기서는 기본 수준으로 유지하려고 합니다.
출력