Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Django 모델의 파일을 다운로드 가능하게 만드는 방법은 무엇입니까?

<시간/>

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입니다. 파일이 저장될 모델 인스턴스의

링크를 동적으로 만들 수 있지만 여기서는 기본 수준으로 유지하려고 합니다.

출력

Django 모델의 파일을 다운로드 가능하게 만드는 방법은 무엇입니까? Django 모델의 파일을 다운로드 가능하게 만드는 방법은 무엇입니까?