Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để có thể tải xuống bất kỳ tệp nào của mô hình Django?

Bạn có thể sử dụng gói django-downloadview để làm cho bất kỳ tệp nào bạn có trong dự án của mình có thể tải xuống được. Bạn có thể lưu trữ các tệp trên một máy chủ.

Trong bài viết này, chúng ta sẽ xem cách tạo tệp có thể tải xuống trong dự án Django của chúng tôi. Đó sẽ là một chủ đề thú vị và bạn sẽ thích nó.

Đầu tiên, hãy cài đặt gói -

pip install django-downloadview

Bây giờ, hãy tạo một dự án Django và một ứng dụng. Thiết lập url và thực hiện một số thao tác cơ bản như thêm ứng dụng trong INSTALLED_APPS. Đồng thời thiết lập MEDIA_ROOT và MEDIA_URL trong settings.py.

Ví dụ

Trong models.py , thêm các dòng sau -

from django.db import models

# Create your models here.
class Data(models.Model):
   file=models.FileField(upload_to='myfiles/',blank=True)

Ở đây, chúng tôi đã tạo một mô hình sẽ lưu tệp tham chiếu của các tệp đã tải lên. Tạo một số dữ liệu giả cho mô hình này.

Trong urls.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)

Chúng tôi đã tạo hai điểm cuối URL, một điểm để hiển thị giao diện người dùng và điểm còn lại là điểm có chế độ xem mô hình tải xuống. ObjectDownloadView là ví dụ lấy mô hình có tệp mà chúng tôi sẽ lưu trữ và chúng tôi đã xác định trường sẽ lưu tệp.

Trong views.py -

def home(request):
   return render(request,'home.html')

Ở đây, chúng tôi đã hiển thị html giao diện người dùng của mình.

Trong home.html , thêm mã sau -

<!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>

Ở đây, chúng tôi đã tham chiếu đến một tệp mà chúng tôi đã tạo dưới dạng dữ liệu giả. '1' là id của phiên bản mô hình của chúng tôi sẽ có tệp được lưu trữ trong đó.

Bạn có thể làm cho các liên kết động nhưng ở đây, chúng tôi muốn giữ nó ở mức cơ bản.

Đầu ra

Làm cách nào để có thể tải xuống bất kỳ tệp nào của mô hình Django? Làm cách nào để có thể tải xuống bất kỳ tệp nào của mô hình Django?