Django

Kaip atsisiųsti failą Django?

Kaip atsisiųsti failą Django?
Atsisiuntimo parinktis yra bendras reikalavimas bet kuriai svetainei, pvz., Internetinei knygai, nemokamai programinei įrangai, nemokamiems žaidimams ir kt. Šios svetainės vartotojai gali atsisiųsti reikiamus failus iš savo įrenginio, jei svetainėje įdiegta atsisiuntimo funkcija. Failą galima atsisiųsti įvykdžius tam tikrą URL arba spustelėjus atsisiuntimo nuorodą ir gavus vartotojo leidimą. Šioje pamokoje bus rodomi tekstinio failo atsisiuntimo be jokios atsisiuntimo nuorodos ir PDF failo atsisiuntimo saito „Django“ programoje būdai.

Būtinos sąlygos:

Prieš praktikuodami šios mokymo programos scenarijų, turite atlikti šias užduotis.

  1. Įdiekite „Django“ versiją 3+ „Ubuntu 20+“ (geriausia)
  2. Sukurkite „Django“ projektą
  3. Paleiskite „Django“ serverį, kad patikrintumėte, ar serveris veikia tinkamai.

Nustatykite „Django“ programą:

Norėdami sukurti „Django“ programą, paleiskite šią komandą atsisiųsti programą. $ python3 valdyti.py startapp downloadapp

Vykdykite šią komandą, kad sukurtumėte vartotoją, kad pasiektumėte „Django“ duomenų bazę. Jei vartotoją sukūrėte anksčiau, komandos vykdyti nereikia.

$ python3 valdyti.py sukurianaudotojas

Pridėkite programos pavadinimą INSTALLED_APP dalis parametrus.py failą.

INSTALLED_APPS = [

„downloadapp“
]

Sukurkite aplanką pavadinimu šablonai viduje atsisiųsti aplanką ir nustatykite šablonai programos vieta Šablonai dalis parametrus.py failą.

Šablonai = [

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

Atsisiųsti teksto failą:

Keisti Peržiūrų.py failas, esantis atsisiųsti aplankas su tokiu scenarijumi. The Atsisiųsti failą() funkcija atsisiųs tekstinį failą pavadinimu teksto.txt tam tikram URL keliui. Failas atidarytas skaityti scenarijaus pradžioje. Failo atsisiuntimui nustatytas „Mime“ tipas ir antraštės informacija.

Peržiūrų.py

# Importuoti „mimetypes“ modulį
importo mimetipai
# importuoti os modulį
importuoti os
# Importuoti „HttpResponse“ modulį
nuo django.http.atsakymo importas HttpResponse
def download_file (užklausa):
# Apibrėžkite „Django“ projekto bazės katalogą
BASE_DIR = os.kelias.dirname (os.kelias.dirname (os.kelias.abspath (__ file__)))
# Apibrėžkite teksto failo pavadinimą
failo pavadinimas = 'testas.txt '
# Apibrėžkite visą failo kelią
failo kelias = BASE_DIR + '/ downloadapp / Files /' + failo vardas
# Atidarykite failą skaityti turinį
kelias = atviras (filepath, 'r')
# Nustatykite mime tipą
mime_type, _ = mimetypes.guess_type (failo kelias)
# Nustatykite „HttpResponse“ grąžinimo vertę
response = HttpResponse (kelias, content_type = mime_type)
# Nustatykite HTTP antraštę siuntimui į naršyklę
response ['Content-Disposition'] = "priedas; failo pavadinimas =% s"% failo pavadinimas
# Grąžinkite atsako vertę
grįžimo atsakymas

Dabar atidarykite URL.py failą iš „Django“ projekto ir atnaujinkite failą naudodami šį scenarijų. Teksto failas bus atsisiųstas, jei kelias, 'parsisiųsti/' yra naudojamas po pagrindinio URL.

URL.py

# Importo kelio modulis
nuo django.URL importavimo kelias
# Importuoti rodinius
iš „downloadapp“ importo rodinių
# Nustatykite atsisiuntimo kelią
urlpatterns = [
kelias ('atsisiųsti /', peržiūros.Atsisiųsti failą),
]

Atidarykite naršyklę ir vykdykite šį URL, kuris atidarys atsisiuntimo dialogo langą vartotojui.

http: // localhost: 8000 / atsisiųsti

Failas bus atsisiųstas, jei vartotojas spustelės Gerai mygtukas pasirinkus Išsaugoti failą variantą.

Atsisiųskite PDF failą naudodami šabloną:

Norėdami sukurti atsisiuntimo parinktį su atsisiuntimo nuoroda, reikės sukurti šabloną. Sukurkite HTML failą pavadinimu failą.HTML su šiuo scenarijumi, kad naršyklėje būtų rodoma atsisiuntimo nuoroda, kad būtų galima atsisiųsti PDF failą. Pagal hipersaitą, kuris naudojamas scenarijuje, atsisiųsite CF.pdf failą.

failą.HTML


Atsisiųsti failą



Atsisiųskite failą naudodami „Django“


Atsisiųsti PDF


Sukurkite kitą rodinio failą pavadinimu peržiūros2.py su tokiu scenarijumi. The download_pdf_file () Funkcija buvo apibrėžta scenarijuje atsisiųsti failą naudojant atsisiuntimo nuorodą. Failo vardas bus perduotas kaip antroji šios funkcijos argumento reikšmė. Failas atidarytas skaityti dvejetainiu PDF failo režimu. Jei vertė failo pavadinimas argumentas tuščias, tada failą.HTML failas bus rodomas naršyklėje, kad būtų rodoma atsisiuntimo nuoroda.

peržiūros2.py

# Importuoti „mimetypes“ modulį
importo mimetipai
# importuoti os modulį
importuoti os
# Importuoti „HttpResponse“ modulį
nuo django.http.atsakymo importas HttpResponse
# Importuoti pateikimo modulį
nuo django.nuorodos importuoti atvaizdavimą
# Apibrėžkite funkciją atsisiųsti pdf failą naudodami šabloną
def download_pdf_file (užklausa, failo pavadinimas = "):
jei failo vardas != ":
# Apibrėžkite „Django“ projekto bazės katalogą
BASE_DIR = os.kelias.dirname (os.kelias.dirname (os.kelias.abspath (__ file__)))
# Apibrėžkite visą failo kelią
failo kelias = BASE_DIR + '/ downloadapp / Files /' + failo vardas
# Atidarykite failą skaityti turinį
kelias = atviras (filepath, 'rb')
# Nustatykite mime tipą
mime_type, _ = mimetypes.guess_type (failo kelias)
# Nustatykite „HttpResponse“ grąžinimo vertę
response = HttpResponse (kelias, content_type = mime_type)
# Nustatykite HTTP antraštę siuntimui į naršyklę
response ['Content-Disposition'] = "priedas; failo pavadinimas =% s"% failo pavadinimas
# Grąžinkite atsako vertę
grįžimo atsakymas
Kitas:
# Įkelkite šabloną
grąžinti pateikimą (užklausa, 'byla.html ')

Atnaujinkite URL.py failą su šiuo scenarijumi norėdami atsisiųsti tam tikrą PDF failą naudodami atsisiuntimo nuorodą.

URL.py

# Importo kelio modulis
nuo django.URL importavimo kelias
# Importuoti rodinius ir rodinius2
iš „downloadapp“ importo rodinių, rodinių2
# Nustatykite atsisiuntimo kelią
urlpatterns = [
kelias ('atsisiųsti /', peržiūros.Atsisiųsti failą),
kelias ('downloadpdf /', peržiūros2.download_pdf_file, name = 'download_pdf_file'),
kelias ('downloadpdf //', peržiūros2.download_pdf_file, name = 'download_pdf_file'),
]

Atidarykite naršyklę ir vykdykite šį URL, kuriame bus rodomas failą.HTML naršyklėje.

http: // localhost: 8000 / downloadpdf

Jei vartotojas spusteli atsisiuntimo nuorodą, CF.pdf bus perduota kaip failo pavadinimas argumentas.

Jei šis failas yra pagrindinėje programos vietoje, pasirodys toks dialogo langas. Vartotojas gali atidaryti failą naršyklėje arba dokumentų peržiūros priemonėje prieš atsisiųsdamas arba atsisiųsti failą tiesiogiai neatidarydamas jo pasirinkdamas išsaugoti failą parinktį ir paspausdami Gerai mygtuką.

Išvada:

Pridėjus teksto ir PDF failų atsisiuntimo parinktį programoje „Django“, šioje pamokoje buvo parodyta naudojant paprastą scenarijų. Naujieji „Django“ vartotojai, perskaitę šią pamoką, gaus idėją pridėti atsisiuntimo parinktį be ir su atsisiuntimo nuoroda programoje „Django“.

Kaip pakeisti pelės žymeklio ir žymeklio dydį, spalvą ir schemą sistemoje „Windows 10“
„Windows 10“ pelės žymeklis ir žymeklis yra labai svarbūs operacinės sistemos aspektai. Tai galima pasakyti ir apie kitas operacines sistemas, taigi, ...
Nemokami ir atvirojo kodo žaidimų varikliai, skirti kurti „Linux“ žaidimus
Šiame straipsnyje bus pateiktas nemokamų ir atvirojo kodo žaidimų variklių, kurie gali būti naudojami kuriant 2D ir 3D žaidimus „Linux“, sąrašas. Toki...
„Tomb Raider for Linux“ pamoka
„Tomb Raider“ šešėlis yra dvyliktas „Tomb Raider“ serijos priedas - veiksmo ir nuotykių žaidimų franšizė, sukurta „Eidos Montreal“. Žaidimą kritikai i...