Django

Kako preuzeti datoteku u Djangu?

Kako preuzeti datoteku u Djangu?
Opcija preuzimanja opći je uvjet za bilo koju web stranicu, poput internetske knjige, besplatnog aplikacijskog softvera, besplatnih igara itd. Korisnici web mjesta mogu preuzeti potrebne datoteke na svoj uređaj ako je za tu web lokaciju implementirana značajka preuzimanja. Datoteka se može preuzeti nakon izvršavanja određenog URL-a ili klika na vezu za preuzimanje i dobivanja dopuštenja od korisnika. Načini preuzimanja tekstualne datoteke bez ikakve veze za preuzimanje i PDF datoteke pomoću veze za preuzimanje u aplikaciji Django bit će prikazani u ovom vodiču.

Preduvjeti:

Prije vježbanja skripte ovog vodiča, morate izvršiti sljedeće zadatke.

  1. Instalirajte Django verziju 3+ na Ubuntu 20+ (po mogućnosti)
  2. Stvorite Django projekt
  3. Pokrenite Django poslužitelj kako biste provjerili poslužitelj ispravno radi ili ne.

Postavljanje aplikacije Django:

Pokrenite sljedeću naredbu za stvaranje Django aplikacije s imenom downloadapp. $ python3 upravljanje.py startapp downloadapp

Pokrenite sljedeću naredbu za stvaranje korisnika za pristup Django bazi podataka. Ako ste korisnika stvorili prije toga, ne trebate pokretati naredbu.

$ python3 upravljanje.py stvarauporabitelja

Dodajte naziv aplikacije u INSTALLED_APP dio postavke.py datoteka.

INSTALLED_APPS = [
..
'downloadapp'
]

Stvorite mapu s imenom predlošci unutar downloadapp mapu i postavite predložaka mjesto aplikacije u PREDLOZI dio postavke.py datoteka.

PREDLOZI = [

.. .
'DIRS': ['/ home / fahmida / django_pro / dopwnloadapp / predlošci'],
.. .
,
]

Preuzmite tekstualnu datoteku:

Izmijenite pogleda.py datoteka koja se nalazi u downloadapp mapa sa sljedećom skriptom. The Preuzmi datoteku() funkcija će preuzeti tekstualnu datoteku s imenom tekst.txt za određeni put URL-a. Datoteka je otvorena za čitanje na početku skripte. Informacije o vrsti mima i zaglavlju postavljene su za preuzimanje datoteke.

pogleda.py

# Uvoz modula mimetipova
uvozne mimetipove
# uvoz os modula
uvoz os
# Uvoz modula HttpResponse
iz djanga.http.odgovor uvoz HttpResponse
def datoteka_datoteke (zahtjev):
# Definirajte osnovni direktorij Django projekta
BASE_DIR = os.staza.dirname (os.staza.dirname (os.staza.apspath (__ datoteka__)))
# Definirajte naziv tekstualne datoteke
filename = 'test.txt '
# Definirajte puni put do datoteke
filepath = BASE_DIR + '/ downloadapp / Files /' + naziv datoteke
# Otvorite datoteku za čitanje sadržaja
put = otvoren (put datoteke, 'r')
# Postavite vrstu mime
mime_tip, _ = mimetipovi.tip_pogađanja (put datoteke)
# Postavite povratnu vrijednost HttpResponse
odgovor = HttpResponse (put, vrsta_tipa = mime_type)
# Postavite HTTP zaglavlje za slanje u preglednik
response ['Content-Disposition'] = "privitak; ime datoteke =% s"% ime datoteke
# Vrati vrijednost odgovora
povratni odgovor

Sada otvorite url adrese.py datoteku iz projekta Django i ažurirajte je sljedećom skriptom. Tekstualna datoteka će se preuzeti ako je put, 'preuzimanje datoteka/' koristi se nakon osnovnog URL-a.

url adrese.py

# Uvoz modula puta
iz djanga.put uvoza URL-ova
# Uvoz pogleda
iz prikaza uvoza downloadapp
# Postavi put za preuzimanje
urlpatterns = [
path ('preuzimanje /', pregledi.Preuzmi datoteku),
]

Otvorite preglednik i pokrenite sljedeći URL koji će korisniku otvoriti dijaloški okvir za preuzimanje.

http: // localhost: 8000 / preuzimanje

Datoteka će se preuzeti ako korisnik klikne na u redu gumb nakon odabira Spremiti datoteku opcija.

Preuzmite PDF datoteku pomoću predloška:

Predložak će biti potreban za izradu ako želite dodati mogućnost preuzimanja s vezom za preuzimanje. Stvorite HTML datoteku s imenom datoteka.html sa sljedećom skriptom za prikaz veze za preuzimanje u pregledniku za preuzimanje PDF datoteke. Prema hipervezi koja se koristi u skripti preuzet će se datoteka CF.pdf datoteka.

datoteka.html


Preuzmi datoteku



Preuzmite datoteku pomoću Django-a


Preuzmite PDF


Stvorite drugu datoteku prikaza s imenom pogledi2.py sa sljedećom skriptom. The download_pdf_file () U skripti je definirana funkcija za preuzimanje datoteke pomoću veze za preuzimanje. Naziv datoteke proslijedit će se kao druga vrijednost argumenta ove funkcije. Datoteka je otvorena za čitanje u binarnom načinu rada za PDF datoteku. Ako je vrijednost naziv datoteke argument je prazan, a zatim datoteka.html datoteka će se prikazati u pregledniku kako bi se prikazala veza za preuzimanje.

pogledi2.py

# Uvoz modula mimetipova
uvozne mimetipove
# uvoz os modula
uvoz os
# Uvoz modula HttpResponse
iz djanga.http.odgovor uvoz HttpResponse
# Uvoz modula prikaza
iz djanga.prečaci uvoz render
# Definirajte funkciju za preuzimanje PDF datoteke pomoću predloška
def download_pdf_file (zahtjev, naziv datoteke = "):
ako naziv datoteke != ":
# Definirajte osnovni direktorij Django projekta
BASE_DIR = os.staza.dirname (os.staza.dirname (os.staza.apspath (__ datoteka__)))
# Definirajte puni put do datoteke
filepath = BASE_DIR + '/ downloadapp / Files /' + naziv datoteke
# Otvorite datoteku za čitanje sadržaja
put = otvoren (filepath, 'rb')
# Postavite vrstu mime
mime_tip, _ = mimetipovi.tip_pogađanja (put datoteke)
# Postavite povratnu vrijednost HttpResponse
odgovor = HttpResponse (put, vrsta_tipa = mime_type)
# Postavite HTTP zaglavlje za slanje u preglednik
response ['Content-Disposition'] = "privitak; ime datoteke =% s"% ime datoteke
# Vrati vrijednost odgovora
povratni odgovor
drugo:
# Učitajte predložak
return render (zahtjev, 'datoteka.html ')

Ažurirajte url adrese.py datoteku sa sljedećom skriptom za preuzimanje određene PDF datoteke pomoću veze za preuzimanje.

url adrese.py

# Uvoz modula puta
iz djanga.put uvoza URL-ova
# Uvoz pogleda i pogleda2
iz downloadapp uvoznih pogleda, views2
# Postavi put za preuzimanje
urlpatterns = [
path ('preuzimanje /', pregledi.Preuzmi datoteku),
put ('downloadpdf /', prikazi2.download_pdf_file, name = 'download_pdf_file'),
put ('downloadpdf //', prikazi2.download_pdf_file, name = 'download_pdf_file'),
]

Otvorite preglednik i pokrenite sljedeći URL koji će prikazati datoteka.html u pregledniku.

http: // localhost: 8000 / downloadpdf

Ako korisnik klikne na vezu za preuzimanje, CF.pdf bit će proslijeđena kao vrijednost naziv datoteke argument.

Ako ova datoteka postoji na osnovnom mjestu aplikacije, pojavit će se sljedeći dijaloški okvir. Korisnik može otvoriti datoteku u pregledniku ili u pregledniku dokumenata prije preuzimanja ili datoteku izravno preuzeti, a da je ne otvori odabirom spremi datoteku i pritiskom na u redu dugme.

Zaključak:

Dodavanje mogućnosti preuzimanja tekstnih i PDF datoteka u aplikaciju Django prikazano je u ovom vodiču pomoću jednostavne skripte. Novi korisnici Djanga dobit će ideju da dodaju mogućnost preuzimanja bez i sa vezom za preuzimanje u aplikaciji Django nakon što pročitaju ovaj vodič.

Najbolje igre za ručno praćenje
Oculus Quest nedavno je predstavio sjajnu ideju ručnog praćenja bez kontrolera. Sa sve većim brojem igara i aktivnosti koje izvršavaju podršku bilo fo...
Kako prikazati OSD prekrivač u aplikacijama i igrama na cijelom zaslonu za Linux
Igranje igara preko cijelog zaslona ili upotreba aplikacija u režimu preko cijelog zaslona bez ometanja može vas odsjeći od relevantnih informacija o ...
Top 5 karata za hvatanje igara
Svi smo vidjeli i voljeli streaming reprodukcije na YouTubeu. PewDiePie, Jakesepticye i Markiplier samo su neki od najboljih igrača koji su zaradili m...