Django

Hur man laddar ner filen i Django?

Hur man laddar ner filen i Django?
Nedladdningsalternativet är ett allmänt krav för alla webbplatser som onlineboken, gratis applikationsprogramvara, gratisspel etc. Webbplatsens användare kan ladda ner nödvändiga filer på sin enhet om nedladdningsfunktionen är implementerad för webbplatsen. Filen kan laddas ner efter att ha utfört en viss URL eller klicka på nedladdningslänken och få behörighet från användaren. Sätten att ladda ner en textfil utan någon nedladdningslänk och en PDF-fil med nedladdningslänken i Django-appen kommer att visas i denna handledning.

Förutsättningar:

Innan du övar på skriptet i denna handledning måste du slutföra följande uppgifter.

  1. Installera Django version 3+ på Ubuntu 20+ (helst)
  2. Skapa ett Django-projekt
  3. Kör Django-servern för att kontrollera att servern fungerar korrekt eller inte.

Ställ in en Django-app:

Kör följande kommando för att skapa en Django-app med namnet nedladdningsapp. $ python3 hantera.py startapp downloadapp

Kör följande kommando för att skapa användaren för åtkomst till Django-databasen. Om du har skapat användaren innan dess behöver du inte köra kommandot.

$ python3 hantera.py skaparanvändare

Lägg till appnamnet i INSTALLERAD_APP del av inställningar.py fil.

INSTALLED_APPS = [
..
'nedladdningsapp'
]

Skapa en mapp med namnet mallar inuti nedladdningsapp mapp och ställ in mallar plats för appen i MALLAR del av inställningar.py fil.

MALLAR = [

.. .
'DIRS': ['/ home / fahmida / django_pro / dopwnloadapp / mallar'],
.. .
,
]

Ladda ner en textfil:

Ändra utsikt.py fil som finns i nedladdningsapp mapp med följande skript. De nedladdning fil() funktionen laddar ner en textfil med namnet text.Text för en viss webbadress. Filen har öppnats för läsning i början av skriptet. Mime-typen och rubrikinformation har ställts in för att ladda ner filen.

utsikt.py

# Importera mimetypes-modul
importera mimetyper
# import os-modul
importera os
# Importera HttpResponse-modul
från django.http.svar import HttpResponse
def nedladdningsfil (begäran):
# Definiera Django-projektets baskatalog
BASE_DIR = os.väg.dirname (os.väg.dirname (os.väg.abspath (__ fil__)))
# Definiera textfilnamn
filnamn = 'test.Text'
# Definiera hela filvägen
filpath = BASE_DIR + '/ downloadapp / Files /' + filnamn
# Öppna filen för att läsa innehåll
sökväg = öppen (filpath, 'r')
# Ställ in mime-typen
mime_type, _ = mimetypes.gissningstyp (filväg)
# Ställ in returvärdet för HttpResponse
respons = HttpResponse (sökväg, content_type = mime_type)
# Ställ in HTTP-rubriken för att skicka till webbläsaren
response ['Content-Disposition'] = "bilaga; filnamn =% s"% filnamn
# Returnera svarsvärdet
svar

Öppna nu webbadresser.py fil från Django-projektet och uppdatera filen med följande skript. Textfilen laddas ned om sökvägen, 'ladda ner/' används efter bas-URL: n.

webbadresser.py

# Importera sökvägsmodul
från django.webbadress för webbadresser
# Importera vyer
från nedladdningsappens importvyer
# Ange sökväg för nedladdning
urlmönster = [
sökväg ('ladda ner /', vyer.nedladdning fil),
]

Öppna webbläsaren och kör följande URL som öppnar nedladdningsdialogrutan för användaren.

http: // localhost: 8000 / nedladdning

Filen laddas ned om användaren klickar på OK efter att du har valt Spara fil alternativ.

Ladda ner PDF-fil med hjälp av mallen:

En mall måste skapas om du vill lägga till nedladdningsalternativet med nedladdningslänken. Skapa en HTML-fil med namnet fil.html med följande skript för att visa nedladdningslänken i webbläsaren för att ladda ner en PDF-fil. Enligt hyperlänken som används i skriptet kommer att ladda ner CF.pdf fil.

fil.html


Nedladdning fil



Ladda ner fil med Django


Ladda ner PDF


Skapa en annan vyfil med namnet vyer2.py med följande skript. De download_pdf_file () funktionen har definierats i skriptet för att ladda ner en fil med nedladdningslänken. Filnamnet skickas som det andra argumentvärdet för denna funktion. Filen har öppnats för läsning i PDF-filens binära läge. Om värdet på filnamn argumentet är tomt, sedan fil.html filen visas i webbläsaren för att visa nedladdningslänken.

vyer2.py

# Importera mimetypes-modul
importera mimetyper
# import os-modul
importera os
# Importera HttpResponse-modul
från django.http.svar import HttpResponse
# Importera renderingsmodul
från django.genvägar importeras
# Definiera funktion för att ladda ner pdf-fil med mall
def nedladdning_pdf_fil (begäran, filnamn = "):
om filnamn != ":
# Definiera Django-projektets baskatalog
BASE_DIR = os.väg.dirname (os.väg.dirname (os.väg.abspath (__ fil__)))
# Definiera hela filvägen
filpath = BASE_DIR + '/ downloadapp / Files /' + filnamn
# Öppna filen för att läsa innehåll
sökväg = öppen (filpath, 'rb')
# Ställ in mime-typen
mime_type, _ = mimetypes.gissningstyp (filväg)
# Ställ in returvärdet för HttpResponse
respons = HttpResponse (sökväg, content_type = mime_type)
# Ställ in HTTP-rubriken för att skicka till webbläsaren
response ['Content-Disposition'] = "bilaga; filnamn =% s"% filnamn
# Returnera svarsvärdet
svar
annan:
# Ladda mallen
return render (begäran, 'fil.html ')

Uppdatera webbadresser.py fil med följande skript för att ladda ner en viss PDF-fil med nedladdningslänken.

webbadresser.py

# Importera sökvägsmodul
från django.webbadress för webbadresser
# Importera vyer och vyer2
från nedladdningsapp importvyer, visningar2
# Ange sökväg för nedladdning
urlmönster = [
sökväg ('ladda ner /', vyer.nedladdning fil),
sökväg ('downloadpdf /', vyer2.download_pdf_file, name = 'download_pdf_file'),
sökväg ('downloadpdf //', vyer2.download_pdf_file, name = 'download_pdf_file'),
]

Öppna webbläsaren och kör följande URL som visar fil.html i webbläsaren.

http: // localhost: 8000 / downloadpdf

Om användaren klickar på nedladdningslänken visas CF.pdf kommer att skickas som värdet på filnamn argument.

Om den här filen finns i appens basplats, kommer följande dialogruta att visas. Användaren kan öppna filen i webbläsaren eller dokumentvisaren före nedladdningen eller ladda ner filen direkt utan att öppna den genom att välja spara filen och tryck på OK knapp.

Slutsats:

Att lägga till ett nedladdningsalternativ för text- och PDF-filer i Django-applikationen visades i den här handledningen med ett enkelt skript. De nya Django-användarna får en idé att lägga till ett nedladdningsalternativ utan och med en nedladdningslänk i Django-appen efter att ha läst denna handledning.

Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider är det tolfte tillskottet till Tomb Raider-serien - en action-äventyrsspelfranchise skapad av Eidos Montreal. Spelet mottogs...
Hur man förbättrar FPS i Linux?
FPS står för Bildrutor per sekund. FPS: s uppgift är att mäta bildfrekvensen i videouppspelningar eller spelprestanda. Med enkla ord betecknas antalet...
De bästa Oculus App Lab-spelen
Om du är Oculus-headsetägare måste du vara förtjust i sidoladdning. Sideladdning är processen för att installera icke-butiksinnehåll på ditt headset. ...