Vereisten:
Voordat u het script van deze tutorial oefent, moet u de volgende taken uitvoeren:.
- Installeer de Django versie 3+ op Ubuntu 20+ (bij voorkeur)
- Een Django-project maken
- Voer de Django-server uit om te controleren of de server correct werkt of niet.
Stel een Django-app in:
Voer de volgende opdracht uit om een Django-app met de naam te maken download app. $ python3 beheren.py startapp downloadapp
Voer de volgende opdracht uit om de gebruiker te maken voor toegang tot de Django-database:. Als u de gebruiker eerder hebt gemaakt, hoeft u de opdracht niet uit te voeren.
$ python3 beheren.py createsuperuserVoeg de app-naam toe aan de INSTALLED_APP deel van de instellingen.py het dossier.
INSTALLED_APPS = […
'download app'
]
Maak een map met de naam Sjablonen binnen in de download app map en stel de Sjablonen locatie van de app in de SJABLONEN deel van de instellingen.py het dossier.
SJABLONEN = [… .
'DIRS': ['/home/fahmida/django_pro/dopwnloadapp/templates'],
… .
,
]
Een tekstbestand downloaden:
Wijzig de keer bekeken.py bestand dat zich in de download app map met het volgende script. De download bestand() functie zal een tekstbestand downloaden met de naam tekst.tekst voor een bepaald URL-pad. Het bestand is geopend om te lezen aan het begin van het script. Het mime-type en de header-informatie zijn ingesteld om het bestand te downloaden.
keer bekeken.py
# Mimetypes-module importerenmimetypes importeren
# import os-module
importeer os
# Import HttpResponse-module
van django.http.reactie importeren HttpResponse
def download_file(verzoek):
# Definieer de Django-projectbasismap
BASE_DIR = os.pad.dirname(os.pad.dirname(os.pad.abspath(__file__)))
# Definieer de naam van het tekstbestand
bestandsnaam = 'test'.tekst'
# Definieer het volledige bestandspad
bestandspad = BASE_DIR + '/downloadapp/Files/' + bestandsnaam
# Open het bestand voor het lezen van inhoud
path = open(bestandspad, 'r')
# Stel het mime-type in
mime_type, _ = mimetypes.Guess_type(bestandspad)
# Stel de retourwaarde van de HttpResponse in
response = HttpResponse(pad, content_type=mime_type)
# Stel de HTTP-header in voor verzending naar browser
response['Content-Disposition'] = "bijlage; bestandsnaam=%s" % bestandsnaam
# Retourneer de antwoordwaarde
antwoord terug:
Open nu de URL's.py bestand van het Django-project en werk het bestand bij met het volgende script:. Het tekstbestand wordt gedownload als het pad, 'downloaden/' wordt gebruikt na de basis-URL.
URL's.py
# Padmodule importerenvan django.URL-importpad
# Weergaven importeren
van downloadapp importweergaven
# Stel pad in om te downloaden
urlpatronen = [
pad('download/', weergaven.download bestand),
]
Open de browser en voer de volgende URL uit die het downloaddialoogvenster voor de gebruiker zal openen:.
http://localhost:8000/download
Het bestand wordt gedownload als de gebruiker klikt op de OK knop na het selecteren van de Sla bestand op keuze.
Download PDF-bestand met behulp van de sjabloon:
Er is een sjabloon vereist om te maken als u de downloadoptie met de downloadlink wilt toevoegen. Maak een HTML-bestand met de naam het dossier.html met het volgende script om de downloadlink in de browser weer te geven om een PDF-bestand te downloaden. Volgens de hyperlink die in het script wordt gebruikt, wordt de CF.pdf het dossier.
het dossier.html
Bestand downloaden met Django
Download PDF