Django

Sådan downloades filen i Django?

Sådan downloades filen i Django?
Downloadmuligheden er et generelt krav til ethvert websted som onlinebogen, gratis applikationssoftware, gratis spil osv. Webstedets brugere kan downloade de nødvendige filer på deres enhed, hvis downloadfunktionen er implementeret til webstedet. Filen kan downloades efter udførelse af en bestemt URL eller klik på downloadlinket og få tilladelse fra brugeren. Måderne til download af en tekstfil uden downloadlink og en PDF-fil ved hjælp af downloadlinket i Django-appen vises i denne vejledning.

Forudsætninger:

Før du træner scriptet til denne vejledning, skal du udføre følgende opgaver.

  1. Installer Django version 3+ på Ubuntu 20+ (helst)
  2. Opret et Django-projekt
  3. Kør Django-serveren for at kontrollere, at serveren fungerer korrekt eller ej.

Konfigurer en Django-app:

Kør følgende kommando for at oprette en Django-app med navnet downloadapp. $ python3 administrere.py startapp downloadapp

Kør følgende kommando for at oprette brugeren til adgang til Django-databasen. Hvis du har oprettet brugeren inden da, behøver du ikke køre kommandoen.

$ python3 administrere.py skaberbruger

Tilføj appnavnet i INSTALLERET_APP en del af indstillinger.py fil.

INSTALLED_APPS = [
..
'downloadapp'
]

Opret en mappe med navnet skabeloner inde i downloadapp mappe og indstil skabeloner placering af appen i MALLER en del af indstillinger.py fil.

MALLER = [

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

Download en tekstfil:

Rediger synspunkter.py fil, der er inde i downloadapp mappe med følgende script. Det download fil() funktionen vil downloade en tekstfil med navnet tekst.txt for en bestemt URL-sti. Filen er åbnet til læsning i begyndelsen af ​​scriptet. Mime-typen og headeroplysningerne er indstillet til at downloade filen.

synspunkter.py

# Importer mimetypes-modul
importer mimetyper
# import os-modul
importer os
# Importer HttpResponse-modul
fra django.http.svar import HttpResponse
def download_fil (anmodning):
# Definer Django-projektets base-bibliotek
BASE_DIR = os.sti.dirname (os.sti.dirname (os.sti.abspath (__ fil__)))
# Definer navn på tekstfil
filnavn = 'test.txt '
# Definer den fulde filsti
filsti = BASE_DIR + '/ downloadapp / Files /' + filnavn
# Åbn filen til læsning af indhold
sti = åben (filsti, 'r')
# Indstil mime-typen
mime_type, _ = mimetypes.gæt_type (filsti)
# Indstil returværdien af ​​HttpResponse
respons = HttpResponse (sti, content_type = mime_type)
# Indstil HTTP-overskriften til afsendelse til browseren
respons ['Content-Disposition'] = "vedhæftet fil; filnavn =% s"% filnavn
# Returner svarværdien
returnere svar

Åbn nu webadresser.py fil fra Django-projektet, og opdater filen med følgende script. Tekstfilen downloades, hvis stien, 'Hent/' bruges efter basis-URL'en.

webadresser.py

# Importer sti-modul
fra django.webadresser til import af sti
# Importer visninger
fra downloadapps importvisninger
# Indstil sti til download
urlmønstre = [
sti ('download /', visninger.download fil),
]

Åbn browseren, og udfør følgende URL, der åbner downloaddialogboksen for brugeren.

http: // localhost: 8000 / download

Filen downloades, hvis brugeren klikker på Okay efter valg af Gem filen mulighed.

Download PDF-fil ved hjælp af skabelonen:

En skabelon skal oprettes, hvis du vil tilføje downloadmuligheden med downloadlinket. Opret en HTML-fil med navnet fil.html med følgende script for at få vist downloadlinket i browseren for at downloade en PDF-fil. I henhold til det hyperlink, der bruges i scriptet, downloades CF.pdf fil.

fil.html


Download fil



Download fil ved hjælp af Django


Download PDF


Opret en anden visningsfil med navnet visninger2.py med følgende script. Det download_pdf_fil () funktion er defineret i scriptet for at downloade en fil ved hjælp af downloadlinket. Filnavnet sendes som den anden argumentværdi for denne funktion. Filen er åbnet til læsning i binær tilstand for PDF-filen. Hvis værdien af filnavn argumentet er tomt, så er fil.html filen vises i browseren for at vise downloadlinket.

visninger2.py

# Importer mimetypes-modul
importer mimetyper
# import os-modul
importer os
# Importer HttpResponse-modul
fra django.http.svar import HttpResponse
# Import gengivelsesmodul
fra django.genveje import gengivelse
# Definer funktion til at downloade pdf-fil ved hjælp af skabelon
def download_pdf_fil (anmodning, filnavn = "):
hvis filnavn != ":
# Definer Django-projektets base-bibliotek
BASE_DIR = os.sti.dirname (os.sti.dirname (os.sti.abspath (__ fil__)))
# Definer den fulde filsti
filsti = BASE_DIR + '/ downloadapp / Files /' + filnavn
# Åbn filen til læsning af indhold
sti = åben (filsti, 'rb')
# Indstil mime-typen
mime_type, _ = mimetypes.gæt_type (filsti)
# Indstil returværdien af ​​HttpResponse
respons = HttpResponse (sti, content_type = mime_type)
# Indstil HTTP-overskriften til afsendelse til browseren
respons ['Content-Disposition'] = "vedhæftet fil; filnavn =% s"% filnavn
# Returner svarværdien
returnere svar
andet:
# Indlæs skabelonen
returner gengivelse (anmodning, 'fil.html ')

Opdater webadresser.py fil med følgende script for at downloade en bestemt PDF-fil ved hjælp af downloadlinket.

webadresser.py

# Importer sti-modul
fra django.webadresser til import af sti
# Importer visninger og visninger2
fra downloadapps importvisninger, visninger2
# Indstil sti til download
urlmønstre = [
sti ('download /', visninger.download fil),
sti ('downloadpdf /', visninger2.download_pdf_file, name = 'download_pdf_file'),
sti ('downloadpdf //', visninger2.download_pdf_file, name = 'download_pdf_file'),
]

Åbn browseren, og udfør følgende URL, der viser fil.html i browseren.

http: // localhost: 8000 / downloadpdf

Hvis brugeren klikker på downloadlinket, vises CF.pdf vil blive videregivet som værdien af filnavn argument.

Hvis denne fil findes i appens basisplacering, vises følgende dialogboks. Brugeren kan åbne filen i browseren eller dokumentfremviseren før download eller downloade filen direkte uden at åbne den ved at vælge Gem filen og trykke på Okay knap.

Konklusion:

Tilføjelse af en downloadmulighed for tekst- og PDF-filer i Django-applikationen blev vist i denne vejledning ved hjælp af et simpelt script. De nye Django-brugere får en idé om at tilføje en downloadmulighed uden og med et downloadlink i Django-appen efter at have læst denne vejledning.

Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har for nylig læst om Microsoft Sculpt Touch trådløs mus og besluttede at købe den. Efter at have brugt det et stykke tid besluttede jeg at dele m...
Mus AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
Tabletbrugere savner ofte musemarkøren, især når de er vante til at bruge bærbare computere. Touchscreen-smartphones og tablets har mange fordele, og ...
Mus Midterste museknap fungerer ikke i Windows 10
Midterste museknap fungerer ikke i Windows 10
Det midterste museknap hjælper dig med at rulle gennem lange websider og skærme med en masse data. Hvis det stopper, vil du ende med at bruge tastatur...