Django

Kako prenesti datoteko v Django?

Kako prenesti datoteko v Django?
Možnost prenosa je splošna zahteva za katero koli spletno mesto, kot je spletna knjiga, brezplačna programska oprema, brezplačne igre itd. Uporabniki spletnega mesta lahko na svojo napravo prenesejo potrebne datoteke, če je za spletno mesto uporabljena funkcija prenosa. Datoteko lahko prenesete po izvedbi določenega URL-ja ali kliku povezave za prenos in pridobitvi dovoljenja uporabnika. Načini prenosa besedilne datoteke brez povezave za prenos in datoteke PDF s povezavo za prenos v aplikaciji Django bodo prikazani v tej vadnici.

Pogoji:

Pred vadbo skripta te vaje morate opraviti naslednje naloge.

  1. Namestite različico Django 3+ na Ubuntu 20+ (po možnosti)
  2. Ustvarite projekt Django
  3. Zaženite strežnik Django, da preverite, ali strežnik deluje pravilno ali ne.

Nastavite aplikacijo Django:

Zaženite naslednji ukaz, da ustvarite aplikacijo Django z imenom downloadapp. $ python3 upravljanje.py startapp downloadapp

Zaženite naslednji ukaz, da ustvarite uporabnika za dostop do baze podatkov Django. Če ste uporabnika ustvarili pred tem, vam ukaza ni treba zagnati.

$ python3 upravljanje.py ustvarja uporabnika

Dodajte ime aplikacije v INSTALLED_APP del nastavitve.py mapa.

INSTALLED_APPS = [
..
'downloadapp'
]

Ustvarite mapo z imenom predloge znotraj downloadapp mapo in nastavite predloge lokacijo aplikacije v PREDLOGE del nastavitve.py mapa.

PREDLOGE = [

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

Prenesite besedilno datoteko:

Spremenite pogledi.py datoteka, ki je znotraj datoteke downloadapp mapo z naslednjim skriptom. The datoteka prenosa () funkcija bo prenesla besedilno datoteko z imenom besedilo.txt za določeno pot URL-ja. Datoteka se je odprla za branje na začetku skripta. Podatki o vrsti mime in glavi so nastavljeni za prenos datoteke.

pogledi.py

# Uvozi modul mimetipov
uvoz mimetipov
# uvoz os modul
uvoz os
# Uvozi modul HttpResponse
iz djanga.http.odziv uvoz HttpResponse
def download_file (zahteva):
# Določite osnovni imenik projekta Django
BASE_DIR = os.pot.dirname (os.pot.dirname (os.pot.abspath (__ datoteka__)))
# Določite ime besedilne datoteke
filename = 'test.txt '
# Določite celotno pot datoteke
filepath = BASE_DIR + '/ downloadapp / Files /' + ime datoteke
# Odprite datoteko za branje vsebine
pot = odprta (pot datoteke, 'r')
# Nastavite vrsto mime
mime_type, _ = mimetipi.ugibati_vrste (pot datoteke)
# Nastavite vrnjeno vrednost HttpResponse
response = HttpResponse (pot, vrsta vsebine = mime_type)
# Nastavite glavo HTTP za pošiljanje v brskalnik
response ['Content-Disposition'] = "priloga; ime datoteke =% s"% ime datoteke
# Vrnite vrednost odziva
povratni odgovor

Zdaj odprite URL-ji.py datoteko iz projekta Django in jo posodobite z naslednjim skriptom. Besedilna datoteka se bo prenesla, če je pot, 'Prenesi/' se uporablja za osnovnim URL-jem.

URL-ji.py

# Uvoz modula poti
iz djanga.pot za uvoz URL-jev
# Uvozi poglede
iz pogledov uvoza downloadapp
# Nastavite pot za prenos
urlpatterns = [
pot ('prenos /', ogledi.prenos_datoteke),
]

Odprite brskalnik in zaženite naslednji URL, ki bo odprl pogovorno okno za prenos za uporabnika.

http: // localhost: 8000 / prenos

Datoteka bo prenesena, če uporabnik klikne na v redu po izbiri gumba Shranite datoteko možnost.

Prenesite datoteko PDF z uporabo predloge:

Če želite dodati možnost prenosa s povezavo za prenos, boste morali ustvariti predlogo. Ustvarite datoteko HTML z imenom mapa.html z naslednjim skriptom za prikaz povezave za prenos v brskalniku za prenos datoteke PDF. Glede na hiperpovezavo, ki je uporabljena v skriptu, bo prenesel datoteko CF.pdf mapa.

mapa.html


Prenesite datoteko



Prenesite datoteko z uporabo Django


Prenesite PDF


Ustvarite drugo datoteko pogleda z imenom pogledi2.py z naslednjim skriptom. The download_pdf_file () je v skriptu definirana funkcija za prenos datoteke s povezavo za prenos. Ime datoteke bo posredovano kot druga vrednost argumenta te funkcije. Datoteka se je odprla za branje v binarnem načinu za datoteko PDF. Če je vrednost Ime datoteke argument je prazen, potem je mapa.html datoteka bo prikazana v brskalniku, da bo prikazana povezava za prenos.

pogledi2.py

# Uvozi modul mimetipov
uvoz mimetipov
# uvoz os modul
uvoz os
# Uvozi modul HttpResponse
iz djanga.http.odziv uvoz HttpResponse
# Uvozi modul upodabljanja
iz djanga.bližnjice uvoz upodabljajo
# Določite funkcijo za prenos datoteke PDF s pomočjo predloge
def download_pdf_file (zahteva, ime datoteke = "):
če ime datoteke != ":
# Določite osnovni imenik projekta Django
BASE_DIR = os.pot.dirname (os.pot.dirname (os.pot.abspath (__ datoteka__)))
# Določite celotno pot datoteke
filepath = BASE_DIR + '/ downloadapp / Files /' + ime datoteke
# Odprite datoteko za branje vsebine
pot = odprta (datoteka, 'rb')
# Nastavite vrsto mime
mime_type, _ = mimetipi.ugibati_vrste (pot datoteke)
# Nastavite vrnjeno vrednost HttpResponse
response = HttpResponse (pot, vrsta vsebine = mime_type)
# Nastavite glavo HTTP za pošiljanje v brskalnik
response ['Content-Disposition'] = "priloga; ime datoteke =% s"% ime datoteke
# Vrnite vrednost odziva
povratni odgovor
sicer:
# Naložite predlogo
vrnitev upodabljanja (zahteva, 'datoteka.html ')

Posodobite URL-ji.py datoteko z naslednjim skriptom za prenos določene datoteke PDF s povezavo za prenos.

URL-ji.py

# Uvoz modula poti
iz djanga.pot za uvoz URL-jev
# Uvozite poglede in poglede2
iz pogledov uvoza downloadapp, pogledov2
# Nastavite pot za prenos
urlpatterns = [
pot ('prenos /', ogledi.prenos_datoteke),
pot ('downloadpdf /', ogledi2.download_pdf_file, name = 'download_pdf_file'),
pot ('downloadpdf //', ogledi2.download_pdf_file, name = 'download_pdf_file'),
]

Odprite brskalnik in izvedite naslednji URL, ki bo prikazal mapa.html v brskalniku.

http: // localhost: 8000 / downloadpdf

Če uporabnik klikne povezavo za prenos, se CF.pdf bo posredovana kot vrednost Ime datoteke prepir.

Če ta datoteka obstaja na osnovnem mestu aplikacije, se prikaže naslednje pogovorno okno. Uporabnik lahko odpre datoteko v brskalniku ali pregledovalniku dokumentov pred prenosom ali datoteko prenese neposredno, ne da bi jo odprl z izbiro shrani datoteko in pritisnite tipko v redu gumb.

Zaključek:

Dodajanje možnosti prenosa za besedilo in datoteke PDF v aplikaciji Django je bilo v tej vadnici prikazano s preprostim skriptom. Novi uporabniki Django bodo po branju te vadnice dobili idejo, da v aplikaciji Django dodajo možnost prenosa brez in s povezavo za prenos.

Kako spremeniti miškin kazalec in velikost, barvo in shemo kazalca v sistemu Windows 10
Kazalec miške in kazalec v operacijskem sistemu Windows 10 sta zelo pomembna vidika operacijskega sistema. To lahko rečemo tudi za druge operacijske s...
Brezplačni in odprtokodni igralni mehanizmi za razvoj iger Linux
Ta članek bo zajemal seznam brezplačnih in odprtokodnih igralnih mehanizmov, ki jih je mogoče uporabiti za razvoj 2D in 3D iger v Linuxu. Obstaja veli...
Vadnica Shadow of the Tomb Raider za Linux
Shadow of the Tomb Raider je dvanajsti dodatek k seriji Tomb Raider - franšiza akcijsko-pustolovskih iger, ki jo je ustvaril Eidos Montreal. Kritiki i...