Django

Kuidas faili Djangos alla laadida?

Kuidas faili Djangos alla laadida?
Allalaadimisvalik on üldine nõue mis tahes veebisaidi jaoks, näiteks veebiraamat, tasuta rakendustarkvara, tasuta mängud jne. Selle saidi kasutajad saavad vajalikud failid oma seadmesse alla laadida, kui saidi jaoks on rakendatud allalaadimisfunktsioon. Faili saab alla laadida pärast konkreetse URL-i käivitamist või allalaadimislingil klõpsamist ja kasutajalt loa saamist. Selles õpetuses kuvatakse Django rakenduses allalaadimislingi abil tekstifaili ja PDF-faili allalaadimise viisid.

Eeldused:

Enne selle õpetuse skripti harjutamist peate täitma järgmised ülesanded.

  1. Installige Django versioon 3+ Ubuntu 20+ (eelistatult)
  2. Looge Django projekt
  3. Käivitage Django server, et kontrollida, kas server töötab õigesti või mitte.

Django rakenduse seadistamine:

Django nimelise rakenduse loomiseks käivitage järgmine käsk downloadapp. $ python3 hallata.py startapp downloadapp

Käivitage järgmine käsk, et luua kasutaja Django andmebaasile juurdepääsuks. Kui olete kasutaja enne seda loonud, ei pea te käsku käivitama.

$ python3 hallata.py loob ülikasutaja

Lisage rakenduse nimi rakendusse INSTALLED_APP osa seaded.py faili.

INSTALLED_APPS = [

'downloadapp'
]

Looge kaust nimega mallid sees downloadapp kaust ja määrake malli omad rakenduse asukoht MALLID osa seaded.py faili.

MALLID = [

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

Laadige alla tekstifail:

Muutke vaated.py fail, mis asub downloadapp kaust järgmise skriptiga. The download_file () funktsioon laadib alla tekstifaili nimega teksti.txt konkreetse URL-i tee jaoks. Fail on skripti alguses lugemiseks avatud. Faili allalaadimiseks on määratud miimikatüüp ja päise teave.

vaated.py

# Impordi mimetüüpide moodul
impordi mimetüübid
# impordib osmooduli
impordi os
# Impordi HttpResponse moodul
alates django.http.vastuse importimine HttpResponse
def download_file (taotlus):
# Määratlege Django projekti baaskataloog
BASE_DIR = os.tee.dirname (os.tee.dirname (os.tee.abspath (__ file__)))
# Määrake tekstifaili nimi
failinimi = 'test.txt '
# Määrake faili täielik tee
filepath = BASE_DIR + '/ downloadapp / Files /' + failinimi
# Avage fail sisu lugemiseks
tee = avatud (filepath, 'r')
# Määrake miimika tüüp
mime_type, _ = mimeypes.guess_type (failirada)
# Määrake HttpResponse'i tagastusväärtus
response = HttpResponse (tee, sisutüüp = mime_tüüp)
# Määrake brauserisse saatmiseks HTTP päis
response ['Content-Disposition'] = "manus; failinimi =% s"% failinimi
# Tagastab vastuse väärtuse
tagasiside

Nüüd avage URL-id.py fail Django projektist ja värskendage faili järgmise skriptiga. Kui faili, laaditakse tekstifail alla, 'lae alla/' kasutatakse põhi-URL-i järel.

URL-id.py

# Importimooduli import
alates django.URL-ide importimise tee
# Impordi vaated
allalaadimisrakenduse impordivaadetest
# Määra allalaadimise tee
urlpatterns = [
tee ('allalaadimine /', vaated.download_file),
]

Avage brauser ja käivitage järgmine URL, mis avab kasutajale allalaadimise dialoogiboksi.

http: // localhost: 8000 / allalaadimine

Fail laaditakse alla, kui kasutaja klõpsab nuppu Okei pärast nupu valimist Salvesta fail valik.

Laadige malli abil alla PDF-fail:

Malli loomine on vajalik, kui soovite lisada allalaadimisvaliku koos allalaadimislingiga. Looge HTML-fail nimega faili.HTML järgmise skriptiga allalaadimislingi kuvamiseks brauseris PDF-faili allalaadimiseks. Vastavalt hüperlingile, mida skriptis kasutatakse, laaditakse see alla CF.pdf faili.

faili.HTML


Laadige fail alla



Laadige fail alla Django abil


Laadige alla PDF


Looge teine ​​vaatefail nimega vaated2.py järgmise skriptiga. The download_pdf_file () Skriptis on faili allalaadimislingi abil allalaadimiseks määratletud funktsioon. Failinimi edastatakse selle funktsiooni teise argumendi väärtusena. Fail on PDF-faili jaoks kahendrežiimis lugemiseks avatud. Kui väärtus faili nimi argument on tühi, siis faili.HTML fail kuvatakse brauseris allalaadimislingi kuvamiseks.

vaated2.py

# Impordi mimetüüpide moodul
impordi mimetüübid
# impordib osmooduli
impordi os
# Impordi HttpResponse moodul
alates django.http.vastuse importimine HttpResponse
# Impordi renderdamise moodul
alates django.otseteed impordi renderdamine
# Määratlege funktsioon pdf-faili allalaadimiseks malli abil
def download_pdf_file (taotlus, failinimi = "):
kui failinimi != ":
# Määratlege Django projekti baaskataloog
BASE_DIR = os.tee.dirname (os.tee.dirname (os.tee.abspath (__ file__)))
# Määrake faili täielik tee
filepath = BASE_DIR + '/ downloadapp / Files /' + faili nimi
# Avage fail sisu lugemiseks
tee = avatud (filepath, 'rb')
# Määrake miimika tüüp
mime_type, _ = mimeypes.guess_type (failirada)
# Määrake HttpResponse'i tagastusväärtus
vastus = HttpResponse (tee, sisutüüp = mime_tüüp)
# Määra brauserisse saatmiseks HTTP päis
response ['Content-Disposition'] = "manus; failinimi =% s"% failinimi
# Tagastab vastuse väärtuse
tagasiside
muu:
# Laadige mall
return render (taotlus, 'fail.HTML ')

Uuendage URL-id.py konkreetse PDF-faili allalaadimise lingi abil järgmise skriptiga fail.

URL-id.py

# Importimooduli import
alates django.URL-ide importimise tee
# Vaadete ja vaadete importimine2
allalaadimisrakenduse impordivaadetest, vaadetest2
# Määra allalaadimise tee
urlpatterns = [
tee ('allalaadimine /', vaated.download_file),
tee ('downloadpdf /', vaated2.download_pdf_file, name = 'download_pdf_file'),
tee ('downloadpdf //', vaated2.download_pdf_file, name = 'download_pdf_file'),
]

Avage brauser ja käivitage järgmine URL, mis kuvab URL-i faili.HTML brauseris.

http: // localhost: 8000 / downloadpdf

Kui kasutaja klõpsab allalaadimislingil, kuvatakse CF.pdf edastatakse väärtusena faili nimi argument.

Kui see fail on rakenduse baasasendis olemas, kuvatakse järgmine dialoogiboks. Kasutaja saab faili enne allalaadimist avada brauseris või dokumendivaaturis või faili otse alla laadida ilma seda valides Salvesta fail ja vajutades nuppu Okei nuppu.

Järeldus:

Selles õpetuses näidati lihtsa skripti abil Django rakenduses teksti- ja PDF-failide allalaadimisvaliku lisamist. Uued Django kasutajad saavad pärast selle õpetuse lugemist idee lisada Django rakenduses allalaadimisvalik ilma ja ilma allalaadimislingita.

Lahing Wesnothi eest 1.13.6 Areng vabastati
Lahing Wesnothi eest 1.13.6 ilmus eelmisel kuul, on 1-s kuues arendusversioon.13.x-seeria ja see pakub mitmeid täiustusi, eelkõige kasutajaliidese ja ...
League of Legendsi installimine Ubuntu 14-le.04
Kui olete League of Legends fänn, siis on see teile võimalus proovida League of Legendsit. Pange tähele, et LOL-i toetab PlayOnLinux, kui olete Linuxi...
Installige uusim OpenRA strateegiamäng Ubuntu Linuxi
OpenRA on tasuta / tasuta reaalajas strateegiamängumootor, mis loob uuesti Westwoodi varased mängud nagu klassikaline Command & Conquer: Red Alert. Ja...