Django

Hvordan laste ned filen i Django?

Hvordan laste ned filen i Django?
Nedlastingsalternativet er et generelt krav for ethvert nettsted som online-boken, gratis applikasjonsprogramvare, gratis spill osv. Nettstedets brukere kan laste ned de nødvendige filene på enheten hvis nedlastingsfunksjonen er implementert for nettstedet. Filen kan lastes ned etter å ha kjørt en bestemt URL eller ved å klikke på nedlastingskoblingen og få tillatelse fra brukeren. Måtene å laste ned en tekstfil uten noen nedlastningskobling og en PDF-fil ved hjelp av nedlastningskoblingen i Django-appen, vil bli vist i denne veiledningen.

Forutsetninger:

Før du trener på skriptet i denne opplæringen, må du fullføre følgende oppgaver.

  1. Installer Django versjon 3+ på Ubuntu 20+ (helst)
  2. Lag et Django-prosjekt
  3. Kjør Django-serveren for å kontrollere at serveren fungerer som den skal eller ikke.

Konfigurer en Django-app:

Kjør følgende kommando for å opprette en Django-app med navnet nedlastingsapp. $ python3 administrere.py startapp downloadapp

Kjør følgende kommando for å opprette brukeren for tilgang til Django-databasen. Hvis du har opprettet brukeren før da, trenger du ikke å kjøre kommandoen.

$ python3 administrere.py skaperbruker

Legg til appnavnet i INSTALLERT_APP del av innstillinger.py fil.

INSTALLED_APPS = [
..
'downloadapp'
]

Opprett en mappe med navnet maler inne i nedlastingsapp mappen og still inn malens plasseringen av appen i MALER del av innstillinger.py fil.

MALER = [

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

Last ned en tekstfil:

Endre utsikt.py filen som er inne i nedlastingsapp mappe med følgende skript. De Last ned fil() funksjonen vil laste ned en tekstfil som heter tekst.tekst for en bestemt URL-bane. Filen er åpnet for lesing i begynnelsen av skriptet. Mime-typen og topptekstinformasjonen er satt til å laste ned filen.

utsikt.py

# Importer mimetypes-modul
importer mimetyper
# import os-modul
importer os
# Importer HttpResponse-modul
fra django.http.svar import HttpResponse
def nedlastningsfil (forespørsel):
# Definer Django-prosjektbasekatalog
BASE_DIR = os.sti.dirname (os.sti.dirname (os.sti.abspath (__ fil__)))
# Definer tekstfilnavnet
filnavn = 'test.tekst'
# Definer hele filbanen
filbane = BASE_DIR + '/ downloadapp / Files /' + filnavn
# Åpne filen for å lese innhold
sti = åpen (filsti, 'r')
# Still inn mime-typen
mime_type, _ = mimetypes.gjetningstype (filbane)
# Still returverdien til HttpResponse
respons = HttpResponse (sti, content_type = mime_type)
# Sett HTTP-overskriften for sending til nettleseren
response ['Content-Disposition'] = "vedlegg; filnavn =% s"% filnavn
# Returner svarverdien
returrespons

Nå åpner du nettadresser.py fil fra Django-prosjektet, og oppdater filen med følgende skript. Tekstfilen lastes ned hvis banen, 'nedlasting/' brukes etter basis-URL.

nettadresser.py

# Importer banemodul
fra django.URL-adresse for import
# Importer visninger
fra nedlastingsapp importvisninger
# Sett sti for nedlasting
urlpatterns = [
sti ('last ned /', visninger.Last ned fil),
]

Åpne nettleseren og kjør følgende URL som åpner nedlastingsdialogboksen for brukeren.

http: // localhost: 8000 / nedlasting

Filen lastes ned hvis brukeren klikker på OK etter å ha valgt Lagre filen alternativ.

Last ned PDF-fil ved hjelp av malen:

Det kreves en mal for å opprette hvis du vil legge til nedlastingsalternativet med nedlastingskoblingen. Opprett en HTML-fil med navnet fil.html med følgende skript for å vise nedlastingskoblingen i nettleseren for å laste ned en PDF-fil. I henhold til hyperkoblingen som brukes i skriptet, vil den laste ned CF.pdf fil.

fil.html


Last ned fil



Last ned fil ved hjelp av Django


Last ned PDF


Opprett en annen visningsfil med navnet utsikt2.py med følgende manus. De nedlasting_pdf_fil () funksjonen er definert i skriptet for å laste ned en fil ved hjelp av nedlastingskoblingen. Filnavnet sendes som den andre argumentverdien for denne funksjonen. Filen er åpnet for lesing i binær modus for PDF-filen. Hvis verdien av filnavn argumentet er tomt, så er fil.html filen vises i nettleseren for å vise nedlastingskoblingen.

utsikt2.py

# Importer mimetypes-modul
importer mimetyper
# import os-modul
importer os
# Importer HttpResponse-modul
fra django.http.svar import HttpResponse
# Importer gjengivelsesmodul
fra django.snarveier import gjengis
# Definer funksjon for å laste ned pdf-fil ved hjelp av mal
def nedlastning_pdf_fil (forespørsel, filnavn = "):
hvis filnavn != ":
# Definer Django-prosjektbasekatalog
BASE_DIR = os.sti.dirname (os.sti.dirname (os.sti.abspath (__ fil__)))
# Definer hele filbanen
filbane = BASE_DIR + '/ downloadapp / Files /' + filnavn
# Åpne filen for å lese innhold
sti = åpen (filbane, 'rb')
# Still inn mime-typen
mime_type, _ = mimetypes.gjetningstype (filbane)
# Still returverdien til HttpResponse
respons = HttpResponse (sti, content_type = mime_type)
# Sett HTTP-overskriften for sending til nettleseren
response ['Content-Disposition'] = "vedlegg; filnavn =% s"% filnavn
# Returner svarverdien
returrespons
ellers:
# Last inn malen
return render (forespørsel, 'fil.html ')

Oppdater nettadresser.py fil med følgende skript for å laste ned en bestemt PDF-fil ved hjelp av nedlastingskoblingen.

nettadresser.py

# Importer banemodul
fra django.URL-adresse for import
# Importer visninger og visninger2
fra nedlastingsapp importvisninger, visninger2
# Sett sti for nedlasting
urlpatterns = [
sti ('last ned /', visninger.Last ned fil),
sti ('downloadpdf /', visninger2.download_pdf_file, name = 'download_pdf_file'),
sti ('downloadpdf //', visninger2.download_pdf_file, name = 'download_pdf_file'),
]

Åpne nettleseren og kjør følgende URL som viser fil.html i nettleseren.

http: // localhost: 8000 / downloadpdf

Hvis brukeren klikker på nedlastingskoblingen, blir CF.pdf vil bli gitt som verdien av filnavn argument.

Hvis denne filen finnes i baseplasseringen til appen, vises følgende dialogboks. Brukeren kan åpne filen i nettleseren eller dokumentviseren før nedlastingen eller laste ned filen direkte uten å åpne den ved å velge lagre filen og trykke på OK knapp.

Konklusjon:

Å legge til et nedlastingsalternativ for tekst- og PDF-filer i Django-applikasjonen ble vist i denne veiledningen ved hjelp av et enkelt skript. De nye Django-brukerne vil få en idé om å legge til et nedlastingsalternativ uten og med en nedlastingskobling i Django-appen etter å ha lest denne opplæringen.

Beste kommandolinjespill for Linux
Kommandolinjen er ikke bare din største allierte når du bruker Linux, den kan også være kilden til underholdning fordi du kan bruke den til å spille m...
Beste Gamepad Mapping Apps for Linux
Hvis du liker å spille spill på Linux med en gamepad i stedet for et vanlig tastatur- og musinngangssystem, er det noen nyttige apper for deg. Mange P...
Nyttige verktøy for Linux-spillere
Hvis du liker å spille spill på Linux, er sjansen stor for at du har brukt apper og verktøy som Wine, Lutris og OBS Studio for å forbedre spilloppleve...