आप अपने प्रोजेक्ट में किसी भी फाइल को डाउनलोड करने योग्य बनाने के लिए django-downloadview पैकेज का उपयोग कर सकते हैं। आप फ़ाइलों को सर्वर पर होस्ट कर सकते हैं।
इस लेख में, हम देखेंगे कि हमारे Django प्रोजेक्ट में फ़ाइल को डाउनलोड करने योग्य कैसे बनाया जाए। यह एक मजेदार विषय होगा और आपको यह पसंद आएगा।
सबसे पहले, पैकेज स्थापित करें -
pip install django-downloadview
अब एक Django प्रोजेक्ट और एक ऐप बनाएं। यूआरएल सेट अप करें और कुछ बुनियादी चीजें करें जैसे 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)
यहां, हमने एक मॉडल बनाया है जो अपलोड की गई फाइलों के फाइल संदर्भ को बचाएगा। इस मॉडल के लिए कुछ डमी डेटा बनाएं।
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)
हमने दो यूआरएल एंडपॉइंट बनाए, एक फ्रंटएंड रेंडर करने के लिए है, और दूसरा वह है जिसमें मॉडल डाउनलोडव्यू है। ऑब्जेक्टडाउनलोड दृश्य वह उदाहरण है जो उस मॉडल को लेता है जिसकी फ़ाइल हम होस्ट करने जा रहे हैं और हमने उस फ़ील्ड को परिभाषित किया है जिसमें फ़ाइल संग्रहीत होगी।
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' आईडी . है हमारे मॉडल इंस्टेंस का, जिसमें फ़ाइल संग्रहीत होगी।
आप लिंक को गतिशील बना सकते हैं लेकिन यहां, हम इसे एक बुनियादी स्तर पर रखना चाहते हैं।
आउटपुट