คุณสามารถใช้แพ็คเกจ django-downloadview เพื่อทำให้ไฟล์ใดๆ ที่คุณมีในโปรเจ็กต์ของคุณดาวน์โหลดได้ คุณสามารถโฮสต์ไฟล์บนเซิร์ฟเวอร์ได้
ในบทความนี้ เราจะมาดูวิธีทำให้ไฟล์ดาวน์โหลดได้ในโปรเจ็กต์ Django ของเรา มันจะเป็นหัวข้อที่สนุกและคุณจะรักมัน
ขั้นแรก ติดตั้งแพ็คเกจ −
pip install django-downloadview
ตอนนี้สร้างโปรเจ็กต์ Django และแอพ ตั้งค่า URL และทำสิ่งพื้นฐานบางอย่าง เช่น เพิ่มแอปใน INSTALLED_APPS ตั้งค่า MEDIA_ROOT และ MEDIA_URL ใน settings.py . ด้วย
ตัวอย่าง
ใน models.py ให้เพิ่มบรรทัดต่อไปนี้ −
from django.db import models # Create your models here. class Data(models.Model): file=models.FileField(upload_to='myfiles/',blank=True)
ที่นี่ เราสร้างแบบจำลองที่จะบันทึกการอ้างอิงไฟล์ของไฟล์ที่อัพโหลด สร้างข้อมูลจำลองสำหรับโมเดลนี้
ใน 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)
เราได้สร้างจุดปลาย 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 ของอินสแตนซ์โมเดลของเราซึ่งจะมีไฟล์จัดเก็บอยู่ในนั้น
คุณสามารถสร้างลิงก์แบบไดนามิกได้ แต่ที่นี่ เราต้องการให้มันอยู่ในระดับพื้นฐาน
ผลลัพธ์