Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

1. diel - Úvod do Django frameworku a webových aplikácií v Pythone

Vitajte pri úvodnom tutoriáli kurzu webových aplikácií s frameworkom Django. Naučíme sa vytvárať dynamické webové aplikácie. Najprv začneme jednoduchou kalkulačkou a od nej sa dostaneme k filmotéke s vlastnou databázou, správou používateľov a skrátka všetkým, čo by poriadna webová aplikácia mala vedieť.

Požiadavky pre úspešné absolvovanie kurzu

Kurz je určený pre začiatočníkov vo webových technológiách, predpokladá však znalosti aspoň v rozsahu kurzov Základné konštrukcie jazyka Python a Objektovo orientované programovanie v Pythone. Vhodná je tiež aspoň čiastočná znalosť HTML z kurzu Webové stránky krok za krokom. Vhod tiež prídu Základné konštrukcie jazyka JavaScript a všeobecný prehľad v databázach.

Framework Django

Django framework pre Python - Základy Django frameworku pre Python

Django je pomerne komplexný, vysokoúrovňový, open-source webový framework, ktorý ponúka všetko, čo budú naši používatelia potrebovať. Django za nás prevezme správu databázy, poskytne množstvo užitočných funkcií a ponúkne svoju perfektnú administráciu.

Okrem frameworku Django sa v Pythone najčastejšie využívajú menšie frameworky Flask a FastAPI, s ktorými máme síce viac slobody, ale zďaleka nemáme v základe také rozsiahle možnosti. Hodí sa najmä na vývoj menších projektov.

Než začneme so samotným Djangom, uvedieme si všeobecne problematiku webových aplikácií. Keď sa ich chystáme vytvárať, mali by sme vedieť, ako fungujú 😊

Výhody webových aplikácií

Nie je náhoda, že sa väčšina dnešných aplikácií píše pre web. Je to z toho dôvodu, že webové aplikácie majú oproti klasickým (desktopovým) mnoho výhod, ich vývoj je lacnejší a zarobia zvyčajne viac peňazí alebo pritiahnu viac používateľov. Aby sme tieto výhody a princípy pochopili, urobme si krátku odbočku do histórie a vysvetlime si, čo k vzniku webových aplikácií vôbec viedlo.

Mainframy

Keď sa počítače prvýkrát dostávali medzi ľudí a do firiem, boli veľmi drahé. Bolo nepredstaviteľné, aby by mal každý zamestnanec svoj počítač. Z toho dôvodu sa zakúpil jeden centrálny počítač (ktorý bol na tú dobu veľmi výkonný) a k tomuto centrálnemu počítaču sa jednoducho povedané pripojilo niekoľko klávesníc a monitorov. Všetci zamestnanci pracovali súčasne na tomto jednom počítači, ktorý ich obsluhoval.

Keby teda napr. išlo o kancelársku aplikáciu Word, každý používateľ by mal na mainframe nejakú svoju zložku s dokumentmi a všetci by pracovali s tým jedným Wordom, ktorý je na mainframe nainštalovaný:

Architektúra mainframu - Základy Django frameworku pre Python

Výhody tejto architektúry sú nasledujúce:

  • jednoduchá správa - aby mohli používatelia používať nejakú aplikáciu, stačí túto aplikáciu nahrať na mainframe. V tej chvíli je prístupná všetkým používateľom. To isté platí pre aktualizáciu, aktualizujeme mainframe a všetci už používajú novú verziu aplikácie.
  • bezpečnosť - všetky dáta sú uložené v databáze na mainframe, nie na staniciach zamestnancov. To isté platí o samotných aplikáciách, k ich kódu sa nikto nedostane.

Máme tu samozrejme aj nevýhody:

  • nízky výkon a vysoká cena – mainframe vyžaduje vysoký výkon a spracováva úplne všetky úlohy aplikácie. Jeho prevádzka je nákladná.

Mainframy sa už takmer nepoužívajú, ale dodnes ešte v niektorých podnikoch fungujú.

Desktopové aplikácie

Ako sa počítače rozširovali medzi menšie firmy a dokonca do domácností, klesala samozrejme aj ich cena. Osobný počítač si už mohol dovoliť každý. Mainframom odzvonilo a nebol dôvod, aby každý zamestnanec alebo všeobecne používateľ nemal svoju aplikáciu vo svojom počítači.

Keď opäť použijeme náš príklad s Wordom, v tomto prípade má každý používateľ svoje dokumenty a svoj Word vo vlastnom počítači (desktope):

Architektúra desktopových aplikácií - Základy Django frameworku pre Python

Výhody desktopových aplikácií sú:

  • vysoký výkon - všetok výkon aplikácie zaisťuje klientsky počítač. Niekedy v tomto prípade hovoríme o tzv. hrubom klientovi. Vtedy aplikácia komunikuje so serverom, ktorý sa stará len o zasielanie dát a nerieši napr. vykresľovanie formulárov, čo za neho robí práve aplikácia.

Nevýhody:

  • zložitá správa - ak vydáme novú verziu našej aplikácie, musíme zaistiť, aby si každý klient aktualizoval svoj počítač. To sa nám samozrejme nepodarí, a preto riešime problémy so starými verziami. Sťahovanie aktualizácií je pre používateľov otravné.
  • bezpečnosť - pretože je u klienta prítomná celá aplikácia, môže sa ju snažiť disassemblovať (hackovať), čo nie je pri dnešných vysokoúrovňových jazykoch príliš veľký problém. Môže nám z aplikácie ukradnúť časti zdrojových kódov alebo nejaké dáta.

Webové stránky

S rozšírením internetu najskôr vzniklo obrovské množstvo statických webových stránok. Webová stránka nie je nič iné ako textový súbor, v ktorom sú pomocou značiek (tagov) označené určité časti textu ako nadpis, odsek, obrázok a podobne. Výsledná stránka je (ako už bolo povedané) statická. Nemôže sa teda meniť, je to iba elektronický dokument, ktorý môžeme len čítať.

HTML stránky (HTML je značkovací jazyk) sú jednoducho uložené na serveri. Akonáhle klient (používateľ s webovým prehliadačom) pošle požiadavku, server mu jednoducho vráti presne tú stránku, ktorú má uloženú. Tejto architektúre sa hovorí klient-server:

Základy Django frameworku pre Python

Táto architektúra sa nápadne podobá mainframu. Vraciame sa teda ku koreňom a získavame nasledujúce výhody:

  • malá záťaž - server iba zasiela HTML stránky a už nerieši ich zobrazenie, nerieši ovládanie klávesnice používateľa, jeho monitora a podobne. To všetko sa deje na klientskom počítači,
  • jednoduchá správa - akonáhle zmeníme obsah na serveri (napr. pridáme nejaký dokument), uvidia ho tam okamžite všetci používatelia,
  • bezpečnosť - ak chceme zakázať prístup k nejakým dokumentom, klient sa k nim jednoducho nemá ako dostať, pretože sú na serveri.

Nevýhodou je samozrejme to, že server vie zasielať iba statické HTML stránky. Nie je spôsob, ako serveru odoslať nejaké dáta a na ich základe dostať výstup (na stránke treba nechať odkaz v diskusii, hlasovať v ankete alebo zobraziť na stránke, kto má dnes sviatok).

Webové aplikácie

Po obrovskom rozmachu internetu a webových stránok sa hľadali spôsoby, ako do stránok pridávať nejakú dynamickú funkčnosť. Tieto pokusy došli postupom času tak ďaleko, že v dnešnej dobe sme schopní dosiahnuť to, aby sa webová stránka správala úplne rovnako, ako desktopová aplikácia (napríklad MS Word z desktopu je na webe dostupný ako Office 365 alebo napr. cez Google Docs). Takej webovej stránke sa hovorí webová aplikácia.

Webové aplikácie fungujú tak, že sa klient spýta servera na určitý dokument. Na serveri ale beží program, ktorý dokáže vygenerovať do stránky to, čo používateľ požaduje. Stránka teda na serveri už neleží, ale je dynamicky vytváraná podľa toho, čo používateľ chce. Práve Django nám umožňuje také skripty v Pythone na serveri prevádzkovať:

Architektúra webových aplikácií v Pythone - Základy Django frameworku pre Python

Scenár je často nasledujúci:

  1. Požívateľ napíše do prehliadača URL adresu (napríklad eshop.com/printer-epson-123) a tým pošle požiadavku serveru.
  2. Server zavolá Django.
  3. Django spracuje požiadavku (tu chce používateľ vypísať informácie o tlačiarni). Pripojí sa k databáze a načíta dáta, ktoré chce klient. Na základe dát vygeneruje webovú HTML stránku.
  4. Hotová stránka je zaslaná klientovi. Ten vidí už iba statickú webovú stránku, ktorá však bola dynamicky vytvorená podľa jeho požiadavky.

Všetky dáta sú v databáze a webová aplikácia, v našom príklade nejaký e-shop, má rozhranie, cez ktoré môže personál jednoducho pridávať nové produkty, upravovať ich cenu a podobne. Je jasné, že keby dáta neboli v databáze, ale každý produkt mal svoju statickú HTML stránku, bolo by extrémne ťažké takéto množstvo stránok spravovať. Navyše by sa potom nedalo pomocou skriptu hľadať podľa ceny, písať k produktom komentáre a podobne.

Práve sme si teda popísali princíp dynamického webu a aj jeho príklad. Aké sú teda výhody webových aplikácií? Pozrime sa na ne:

  • jednoduchá správa - novú verziu aplikácie nahráme a v tom okamihu ju používajú úplne všetci,
  • bezpečnosť - web aj databázy sú na serveri a ak neobsahuje nejaké bezpečnostné chyby, je veľmi neľahké aplikáciu ukradnúť,
  • kompatibilita - pretože na web pristupujeme cez webový prehliadač, vôbec nás nezaujíma operačný systém klienta, naša aplikácia funguje prakticky všade, dokonca aj na mobile,
  • nízka záťaž - server nie je zaťažovaný napr. vlastným zobrazovaním stránok, to robí webový prehliadač,
  • veľká používateľská základňa - ľudia sú leniví sťahovať a inštalovať. Pri webovej aplikácii len kliknú na odkaz a už s ňou pracujú.

Používateľov, ktorí by používali tú istú aplikáciu, keby bola na desktope namiesto na webe, by bolo podstatne menej. A práve kvôli používateľom aplikácie predsa píšeme. Či sú zadarmo alebo sú platené, vždy chceme, aby ich používalo čo najviac ľudí. Toto je hlavný dôvod, prečo sa v poslednej dobe robí v podstate všetok softvér webový.

Je teda vidno, že webové aplikácie sú budúcnosť. A kto ich ovláda, ten sa bude mať dobre. Asi jedinou nevýhodou je, že ich vývoj je o niečo náročnejší ako pri aplikáciách desktopových. Je to z toho dôvodu, že web bol najprv navrhnutý pre statické dokumenty a existujú určité obmedzenia, ktoré sa musia obchádzať. Avšak technológie sa stále vyvíjajú a mnoho vecí ide oproti minulosti už podstatne ľahšie. Vďačíme za to najmä novým štandardom HTML5 a CSS3.

Zložitejšie webové aplikácie sú väčšinou ešte doplnené ďalším programovacím jazykom - JavaScriptom. Ten beží v klientskom počítači a spracováva vizuálnu časť aplikácie. Tu na ITnetworku je v JavaScripte naprogramované napr. navigačné menu. JavaScript slúži skôr pre doplnky v používateľskom rozhraní a je podstatný až pri zložitých webových aplikáciách.

To by bolo na úvod všetko.

V nasledujúcej lekcii, Zoznámenie s frameworkom Django pre Python, si nainštalujeme Django a vytvoríme svoju prvú webovú aplikáciu.


 

Všetky články v sekcii
Základy Django frameworku pre Python
Preskočiť článok
(neodporúčame)
Zoznámenie s frameworkom Django pre Python
Článok pre vás napísal MQ .
Avatar
Užívateľské hodnotenie:
88 hlasov
Používám hlavně Python a zajímám se o Deep Learning a vše kolem.
Aktivity