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:

2. diel - Zoznámenie s frameworkom Django pre Python

V predchádzajúcej lekcii, Úvod do Django frameworku a webových aplikácií v Pythone, sme si urobili úvod do webových aplikácií.

V dnešnom tutoriáli webových aplikácií s frameworkom Django sa vrhneme na samotný framework Django. Najprv si ho nainštalujeme a potom vytvoríme svoju prvú webovú aplikáciu v Pythone. Dôkladne si vysvetlíme routovanie.

Inštalácia Django

Na inštaláciu Django 4.2.1 potrebujeme Python vo verzii 3.8 alebo novšej. Otvoríme si v počítači príkazový riadok (anglicky Command Prompt). Vo Windows stačí vyhľadať cmd, na MacOS a Linuxe sa príkazový riadok volá terminal:

CMD vo Windows - Základy Django frameworku pre Python

Do príkazového riadka napíšeme tento príkaz:

py -m pip install Django==4.2.1

Ak nám príkazový riadok vypíše, že príkaz py neexistuje, nemáme správne nainštalovaný Python. Pokyny na inštaláciu nájdeme v lekcii PyCharm a prvá konzolová aplikácia v Pythone

V príkazovom riadku uvidíme výstup:

Výstup inštalácie:
C:\Users\tomse>py -m pip install Django==4.2.1
Collecting Django==4.2.1
  Downloading Django-4.2.1-py3-none-any.whl (8.0 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.0/8.0 MB 9.0 MB/s eta 0:00:00
......
Installing collected packages: Django
Successfully installed Django-4.2.1

Pozor, musíme dodržať presné verzie modulov, komponentov a všetkých verzovaných prvkov! V Djangu budeme neskôr vytvárať pokročilý projekt, ktorý závisí od množstva knižníc, databáz atď. Použitie najnovšej verzie nejakej knižnice, ktorá práve včera vyšla, naozaj nie je dobrý nápad. Projekt potom bez odbornej úpravy pravdepodobne nebude fungovať! Ako dobrý príklad poslúži knižnica Pandas, ktorá vo verzii 2.0 stratila podporu pre metódu append(). Nahradila ju metóda concat(), samozrejme s inou syntaxou. Pri verziách knižníc a modulov teda neplatí, ako napríklad pri aktualizácii Windows, že chceme každý deň používať tú najnovšiu. Neustále aktualizácie by si totiž vyžadovali každodenné a komplexné zmeny v kóde projektu a reálne sa preto nerobia. Z rovnakého dôvodu aj my aktualizujeme kurzy v pravidelných intervaloch a nové verzie navzájom zladíme tak, aby všetko fungovalo.

Vytvorenie projektu

Vytvoríme si prvý projekt s názvom mysite. Opäť na to použijeme príkazový riadok. Zložku, v ktorej chceme projekt vytvoriť si zobrazíme v prieskumníkovi súborov. Namiesto cesty do vstupu napíšeme cmd a potvrdíme klávesom ENTER:

Ako otvoriť cmd v zložke - Základy Django frameworku pre Python

Otvorí sa nám príkazový riadok v nami zvolenej zložke:

Django – Terminál - Základy Django frameworku pre Python

Na MacOS si otvoríme terminál, napíšeme príkaz cd a presunieme zložku, v ktorej chceme mať projekt uložený na okno terminálu. V príkazovom riadku budeme mať napríklad príkaz: cd Users/user_name/Documents/Django s medzerou za cd. Potvrdíme klávesom ENTER.

Do terminálu následne napíšeme tento príkaz pre vytvorenie Django projektu:

django-admin startproject mysite

Po zadaní príkazu django-admin startproject mysite sa vám môže zobraziť chybové hlásenie:

Windows PowerShell
C:\Users\tomse>django-admin startproject mysite
'django-admin' is not recognized as an internal or external command, operable program or batch file.

Alternatívnym riešením je spustiť príkaz:

py -m django startproject mysite

Po vložení príkazu sa nič nevypíše. Django za nás vytvorí štruktúru projektu. Projekty v Djangu totiž majú určité pravidlá, ktorými by sme sa mali riadiť. To oceníme najmä pri väčších projektoch, aj keď pri menších nám to môže zo začiatku spôsobovať trochu zmätok. V našej zložke sa vytvoril adresár mysite/. Otvorme si ho v PyCharme:

Otvorenie zložky - Základy Django frameworku pre Python

Skontrolujme si, že otvárame zložku mysite/, ktorá obsahuje ďalšiu zložku mysite/ a súbor manage.py a nie iný adresár.

Adresárová štruktúra Django projektu

Obsah zložky vyzerá takto:

mysite\
    mysite\
        __init__.py
        settings.py
        urls.py
        wsgi.py
    manage.py

Jednotlivé súbory si teraz popíšeme:

  • settings.py - tu sa nachádza konfigurácia projektu a tu tiež inštalujeme svoje aplikácie, viď ďalej,
  • urls.py - tu je uložená schéma, ktorá určuje, ako sa má spracovať URL adresa, ktorú používateľ zadá do prehliadača. Definujeme tu, aké adresy smerujú na aké časti našej aplikácie. Tento mechanizmus sa nazýva routovanie,
  • wsgi.py - konfigurácia rozhrania pre nasadenie webovej aplikácie na server,
  • manage.py - o zložku vyššie sa nachádza manage.py, pre nás najdôležitejší súbor. Umožňuje nám spúšťať rôzne príkazy. Použijeme ho napr. na spustenie servera, migráciu databázy, vytváranie aplikácií, zber statických súborov a ďalšie podobné účely.

Spustenie servera

Z úvodnej lekcie už vieme, že na to, aby sme mohli k našej aplikácii pristúpiť cez webový prehliadač, potrebujeme server.

Spustenie servera vykonáme príkazom cez súbor manage.py. Najprv musíme otvoriť príkazový riadok v zložke mysite/. Ak sme si zložku otvorili v PyCharme, môžeme to urobiť kliknutím na ikonu terminálu alebo klávesovou skratkou Alt+F12:

PyCharm Terminál - Základy Django frameworku pre Python

Zadáme príkaz:

py manage.py runserver

Po chvíli sa do konzoly vypíše:

Terminál
PS C:\Users\Filip\Desktop\Django\mysite> py manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
May 08, 2025 - 18:52:12
Django version 4.2.1, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

Ak sa nám príkaz nevykonal, uistíme sa, že máme otvorenú správnu zložku, zložky mysite/ sú v našom projekte dve.

Naša aplikácia teraz beží na našom lokálnom serveri na adrese http://127.0.0.1:8000/. Zadáme túto adresu do svojho webového prehliadača alebo klikneme na odkaz v konzole. Uvidíme uvítaciu stránku frameworku Django:

Spustený Django server. - Základy Django frameworku pre Python

V príkazovom riadku sa budú vypisovať všetky požiadavky na server.

Ak chceme server ukončiť, stlačíme v termináli Ctrl + C.

Vytvorenie aplikácie

Projekt aj prostredie máme pripravené. Môžeme teda začať s tvorbou našej aplikácie. Django má v tomto ohľade trochu netradičné názvoslovie. Projekt tu môže obsahovať viacero aplikácií. Tie fungujú ako moduly, typicky máme napr. administráciu oddelenú od hlavnej aplikácie. Častejšie sa stretávame s pojmami aplikácia a modul než projekt a aplikácia, význam je však úplne rovnaký.

Pre túto chvíľu teda ukončíme beh servera – vrátime sa do okna terminálu a stlačíme Ctrl + C) Potom si vytvoríme v projekte aplikáciu (modul) s názvom hello_world. Urobíme tak príkazom v termináli (opäť v zložke mysite/):

py manage.py startapp hello_world

V zložke mysite/ sa nám vytvorí zložka hello_world/:

Terminal PyCharm - Základy Django frameworku pre Python

Adresárová štruktúra Django aplikácie

Django za nás vytvorí všetko potrebné, to je jeho výhoda oproti napr. frameworku Flask. V zložke projektu sa vytvorí nový adresár hello_world/. Jeho obsah vyzerá takto:

mysite/
    hello_world/
        __init__.py
        admin.py
        apps.py
        models.py
        tests.py
        # urls.py
    # Everything else remains the same

Jednotlivé súbory si opäť popíšeme:

  • admin.py – administrácia jednotlivých aplikácií,
  • apps.py – konfigurácia konkrétnej aplikácie,
  • models.py – správa databázových modelov, Django ORM, viď ďalej v kurze,
  • tests.py – testy aplikácie,
  • urls.py – tento súbor sa nevytvorí, musíme ho vytvoriť manuálne (viď ďalej). Budú tu odkazy na Python skripty, ktoré spracujú požiadavky zaslané cez dané URL adresy.

Štruktúra adresárov môže na prvý pohľad pôsobiť chaoticky, ale po chvíli používania začne dávať zmysel. Keď budeme Django používať pri tvorbe väčšej aplikácie, túto štruktúru veľmi oceníme.

Inštalácia aplikácie

V súbore mysite\mysite\settings.py, do ktorého sa teraz presunieme, aplikáciu "nainštalujeme". Django musí vedieť, kde sú aplikácie a koľko ich je. Pri tejto aplikácii inštalácia nie je nevyhnutná, ale je lepšie zvyknúť si inštalovať všetky vlastné aplikácie, aby sme dodržali princípy frameworku Django. Inštaláciu vykonáme pridaním názvu aplikácie do settings.py, do časti označenej komentárom # Application definition. Výsledný zoznam INSTALLED_APPS v súbore mysite\mysite\settings.py bude vyzerať takto:

INSTALLED_APPS = [
    'hello_world',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

Prvá Django aplikácia

V ďalších krokoch si vytvoríme Django aplikáciu, ktorá po spustení vypíše na webovej stránke text Hello world!. Poďme na to.

View

Každá stránka, ktorú v Djangu vytvoríme, musí mať tzv. view, čiže zobrazenie. Je to obyčajná Python funkcia, ktorá dostane požiadavku z webového prehliadača a vráti nejakú odpoveď. Napríklad text alebo celú HTML stránku. Otvorme si súbor views.py, ktorý nájdeme v zložke hello_world/, a do neho napíšeme tento kód:

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello world!")

Metóda index() vracia objekt typu HttpResponse, ktorý nám umožňuje poslať odpoveď späť do prehliadača. Ako parameter mu odovzdávame text, ktorý sa má na stránke zobraziť. V ďalších krokoch nastavíme, aby sa táto funkcie zavolala vždy, keď niekto pristúpi na stránku http://127.0.0.1:8000/.

Routovanie

V nasledujúcom kroku musíme zabezpečiť, aby otvorenie stránky http://127.0.0.1:8000/ zavolalo práve vytvorenú funkciu index() a zobrazilo požadovaný text. Tento proces sa nazýva routovanie. Vytvorme si v zložke hello_world/ nový súbor urls.py.

V našom projekte sa už súbor urls.py nachádza, ale v zložke mysite/, ktorá slúži pre celý projekt. My budeme teraz používať ten v zložke hello_world/, ktorý sme práve vytvorili. Nepomýľme si ich.

Do novo vytvoreného súboru urls.py vložíme tento kód:

from django.urls import path
from . import views

urlpatterns = [
    path("", views.index, name="index"),
]

V kolekcii urlpatterns sa nachádzajú všetky URL adresy (tzv. routy), ktoré chceme v našej aplikácii použiť. Na ich vytvorenie využijeme funkciu path(), ktorá ako prvý parameter berie URL adresu, kde sa nachádza. Keby sme teda zadali ako parameter napr. "hello", budeme odkazovať na adresu http://127.0.0.1:8000/hello). Pretože funkciu index() chceme volať na adrese http://127.0.0.1:8000/, necháme v hodnote tohto atribútu prázdny string.

Druhý parameter určuje, čo sa má na tejto ceste spustiť. V našom prípade je to funkcie index() v súbore views.py. Tretí parameter name je voliteľný, využijeme ho v prípade, keď budeme chcieť na danú adresu v kóde neskôr odkazovať.

Routovanie v projekte

Teraz sa presunieme do druhého súboru urls.py, ktorý sa nachádza v zložke mysite/. Tu predchádzajúci súbor urls.py zaregistrujeme. Súbor mysite/urls.py rozšírime takto:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", include("hello_world.urls")),
]

Pridali sme len jednu novú path() a import na funkciu include(). Tým sme projektu povedali, že ak používateľ pristúpi na cestu "", teda http://127.0.0.1:8000/, má sa použiť urls.py súbor nachádzajúci sa v zložke hello_world/.

Spustenie aplikácie

Do terminálu napíšeme príkaz na spustenie servera:

py manage.py runserver

Na URL adrese http://127.0.0.1:8000/ teraz uvidíme stránku s nápisom Hello World!:

127.0.0.1:8000
http://127.0.0­.1:8000/

V nasledujúcej lekcii, Predstavenie MVC a MVT architektúry v Django, si vysvetlíme, ako funguje MVC architektúra, teda presnejšie jej MVT verzia, ktorú Django používa.


 

Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 74x (7.94 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Python

 

Predchádzajúci článok
Úvod do Django frameworku a webových aplikácií v Pythone
Všetky články v sekcii
Základy Django frameworku pre Python
Preskočiť článok
(neodporúčame)
Predstavenie MVC a MVT architektúry v Django
Článok pre vás napísal MQ .
Avatar
Užívateľské hodnotenie:
80 hlasov
Používám hlavně Python a zajímám se o Deep Learning a vše kolem.
Aktivity