Lekce 2 - Seznámení s Django frameworkem pro Python
V minulé lekci, Úvod do Django frameworku a webových aplikací v Pythonu, jsme si udělali úvod do webových aplikací.
V dnešním tutoriálu webových aplikací s frameworkem Django se vrhneme na samotný framework Django. Nejprve si jej nainstalujeme a poté vytvoříme svou první webovou aplikaci v Pythonu. Důkladně si vysvětlíme routování.
Instalace Django
Pro instalaci Django 4.2.1 potřebujeme Python ve verzi 3.8 nebo novější.
Otevřeme si v počítači příkazový řádek (anglicky
Command Prompt). Ve Windows stačí vyhledat cmd
, na MacOS a Linux
se příkazový řádek jmenuje terminal:

Do příkazového řádku napíšeme tento příkaz:
py -m pip install Django==4.2.1
Pokud nám příkazový řádek hlásí, že příkaz
py
neexistuje, nemáme správně nainstalovaný Python. Pokyny k
instalaci nalezneme v lekci PyCharm a
první konzolová aplikace v Pythonu.
V příkazovém řádku uvidíme výstup:
Výstup instalace: 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žet přesné verze modulů,
komponent a zkrátka všech verzovaných prvků! V Django budeme
později vytvářet docela pokročilý projekt, který závisí na množství
knihoven, databázi atd. Použít nejnovější verzi nějaké komponenty, co
zrovna včera vyšla, opravdu není dobrý nápad. Projekt pak bez odborné
úpravy pravděpodobně nebude fungovat! Za dobrý příklad poslouží knihovna
Pandas
, která ve verzi 2.0 ztratila podporu pro metodu
append()
. Nahradila ji metoda concat()
, samozřejmě s
jinou syntaxí. U verzí knihoven, modul atd. zkrátka neplatí jako např. u
aktualizace Windows, že chceme každý den používat tu nejnovější.
Neustálé aktualizace všeho by totiž vyžadovaly každodenní a komplexní
změny kódu projektu a reálně se tak neprovádějí. Ze stejného důvodu i
my aktualizujeme kurzy v pravidelných intervalech a nové verze k sobě pak
sladíme tak, aby vše fungovalo.
Vytvoření projektu
Vytvoříme si první projekt s názvem mysite
. Opět k tomu
použijeme příkazový řádek. Složku, ve které chceme projekt vytvořit si
zobrazíme v průzkumníku souborů. Místo cesty do vstupu
napíšeme cmd
a potvrdíme klávesou ENTER:

Otevře se nám příkazový řádek v námi zvolené složce:

Na MacOS si otevřeme terminál, napíšeme
příkaz cd
a přesuneme složku, ve které chceme mít projekt
uložený na okno terminálu. V příkazovém řádku budeme mít například
příkaz: cd /Users/vase_jmeno/Documents/Django
s mezerou za
cd
. Potvrdíme klávesou ENTER.
Do terminálu následně napíšeme tento příkaz pro založení Django projektu:
django-admin startproject mysite
Po vložení příkazu se nic nevypíše. Django za nás vytvoří strukturu
projektu. Projekty v Djangu totiž mají určitá pravidla, kterými bychom se
měli řídit. To si budeme pochvalovat zejména u větších projektů, i když
u těch menších nám to ze začátku může působit trochu zmatek. V naší
složce se nám vytvořil adresář mysite/
. Otevřme si ho v
PyCharmu:

Zkontrolujme si, že otvíráme složku mysite/
,
která obsahuje další složku mysite/
a soubor
manage.py
a ne jiný adresář.
Adresářová struktura Django projektu
Obsah složky vypadá následovně:
mysite\
mysite\
__init__.py
settings.py
urls.py
wsgi.py
manage.py
Jednotlivé soubory si nyní popíšeme:
settings.py
- zde se nachází konfigurace projektu a zde také instalujeme své aplikace, viz dále,urls.py
- zde je uložené schéma, které říká, jak se má zpracovat URL adresa, kterou uživatel do prohlížeče zadá. Definujeme zde, jaké adresy směřují na jaké části naší aplikace. Tomuto mechanismu se říká routování,wsgi.py
- konfigurace rozhraní pro nasazení webové aplikace na server,manage.py
- o složku výše se nacházímanage.py
, pro nás nejdůležitější soubor. Umožňuje nám spouštět různé příkazy. Použijeme jej např. ke spuštění serveru, migraci databáze, vytváření aplikací, sběru statických souborů a dalším podobným účelům.
Spuštění serveru
Z úvodní lekce již víme, že pro to, abychom mohli k naší aplikaci přistoupit přes webový prohlížeč, potřebujeme server.
Spuštění serveru provedeme spuštěním příkazu přes soubor
manage.py
. Nejprve musíme otevřít příkazový řádek ve
složce mysite/
. Pokud jsme si složku otevřeli v PyCharmu,
můžeme to udělat kliknutím na ikonu terminálu či
klávesovou zkratkou Alt+F12:

Zadáme příkaz:
py manage.py runserver
Po chvíli se do konzole vypíše:
Terminal
PS C:\Users\Filip\Desktop\Django\mysite> python 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.
Pokud se nám příkaz nevykonal, ujistíme se, že máme
otevřenou správnou složku, složky mysite/
jsou v našem
projektu dvě.
Naše aplikace nyní běží na našem lokálním serveru na adrese
http://127.0.0.1:8000/
. Zadáme tuto adresu do svého webového
prohlížeče nebo klikneme na odkaz v konzoli. Uvidíme uvítací stránku
Django frameworku:

V příkazovém řádku se budou vypisovat všechny požadavky na server.
Pokud budeme chtít server ukončit, stiskneme v terminálu Ctrl + C.
Vytvoření aplikace
Projekt i prostředí máme připravené. Můžeme tedy začít s tvorbou naší aplikace. Django má v tomto ohledu poněkud netradiční názvosloví. Projekt zde může obsahovat více aplikací. Ty fungují jako moduly, typicky máme např. administraci oddělenou od hlavní aplikace. Častěji se setkáváme s pojmy aplikace a modul než projekt a aplikace, význam je ale úplně stejný.
Pro tuto chvíli tedy ukončíme běh serveru – vrátíme se do okna
terminálu a stiskneme Ctrl + C). Poté si vytvoříme v
projektu aplikaci (modul) s názvem ahoj_svete
. Učiníme tak
příkazem v terminálu (opět ve složce mysite/
):
py manage.py startapp ahoj_svete
Ve složce mysite/
se nám vytvoří složka
ahoj_svete/
:

Adresářová struktura Django aplikace
Django za nás vše potřebné vytvoří, to je jeho výhoda oproti např.
Flask frameworku. Ve složce projektu se nám vytvoří nový adresář
ahoj_svete/
. Jeho obsah vypadá následovně:
mysite/ ahoj_svete/ __init__.py admin.py apps.py models.py tests.py # urls.py # Ostatní zůstává stejné
Jednotlivé soubory si opět popíšeme:
admin.py
- administrace jednotlivé aplikace,apps.py
- konfigurace jednotlivé aplikace,models.py
- správa modelů databáze, Django ORM, viz dále v kurzu,tests.py
- testy aplikace,urls.py
- tento soubor se nevytvoří, musíme jej vytvořit manuálně (viz dále). Budou zde odkazy na Python skripty, které požadavky zaslané přes dané URL adresy zpracují.
Struktura adresářů může na první pohled působit zmatečně, ale po chvíli používání začne dávat smysl. Až budeme Django používat při tvorbě větší aplikace, tuto strukturu velmi oceníme.
Instalace aplikace
V souboru mysite\mysite\settings.py
, do kterého se nyní
přesuneme, aplikaci "nainstalujeme". Django musí mít
přehled o tom, kde má své aplikace a kolik jich má. U této aplikace
instalace není nutná, ale je lepší si zvyknout instalovat všechny naše
aplikace, abychom dostáli principům Django frameworku. Instalaci provedeme
připsáním názvu aplikace do settings.py
, do části označené
komentářem # Application definition
. Výsledný seznam
INSTALLED_APPS
v souboru mysite\mysite\settings.py
bude vypadat takto:
INSTALLED_APPS = [ 'ahoj_svete', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ]
První Django aplikace
V dalších krocích si vytvoříme Django aplikaci, která po spuštění
vypíše na webové stránce text Ahoj světe!
. Pojďme na to.
View
Každá stránka, kterou v Djangu vytvoříme, musí mít view, neboli
zobrazení. Je to obyčejná funkce v Pythonu, která dostane požadavek z
webového prohlížeče a vrátí nějakou odpověď. Třeba text nebo webovou
stránku. Otevřeme si soubor views.py
, který najdeme ve složce
ahoj_svete/
, do něj napíšeme následující kód:
from django.http import HttpResponse def index(request): return HttpResponse("Ahoj světe!")
Metoda index()
vrací objekt typu HttpResponse
,
který nám umožňuje poslat odpověď zpět do prohlížeče. Jako parametr mu
předáváme text, který se má na stránce zobrazit. V dalších krocích
nastavíme, aby se tato funkce zavolala pokaždé, když někdo otevře stránku
http://127.0.0.1:8000/
.
Routování
V následujícím bodu musíme zajistit, aby otevření stránky
http://127.0.0.1:8000/
zavolalo právě vytvořenou funkci
index()
a zobrazilo požadovaný text. Tomuto procesu se říká
routování. Vytvořme si ve složce ahoj_svete/
nový soubor urls.py
.
V našem projektu se již soubor urls.py
nachází, najedeme jej ve složce mysite/
, který slouží pro
celý projekt. My budeme nyní používat ten ve složce
ahoj_svete/
, který jsme právě vytvořili. Nepleťme si je.
Do nově vytvořeného souboru urls.py
vložíme následující
kód:
from django.urls import path from . import views urlpatterns = [ path("", views.index, name="index"), ]
V kolekci urlpatterns
se nachází všechny URL adresy (tzv.
routy), které chceme v naší aplikaci použít. Pro
vytvoření využijeme funkci path()
, která jako první parametr
bere URL adresu, kde se nachází. Kdybychom tedy zadali jako parametr např.
"ahoj"
, budeme odkazovat na adresu
http://127.0.0.1:8000/ahoj
. Protože funkci index()
chceme volat na adrese http://127.0.0.1:8000/
, necháme v hodnotě
tohoto atributu prázdný string.
Druhý atribut pak udává, co se má na této cestě spustit. V našem
případě to je funkce index()
ze souboru views.py
.
Třetí parametr name
je volitelný, využijeme jej v případě,
kdy budeme chtít na danou adresu v kódu později odkazovat.
Routování v projektu
Přesuneme se nyní do druhého souboru
urls.py
, který se nachází ve složce mysite/
. Zde
předchozí soubor urls.py
zaregistrujeme. Soubor
mysite/urls.py
rozšíříme následovně:
from django.contrib import admin from django.urls import path, include urlpatterns = [ path("admin/", admin.site.urls), path("", include("ahoj_svete.urls")), ]
Přidali jsme pouze jednu novou path()
a import na funkci
include()
. Tím jsme projektu řekli, že pokud uživatel
přistoupí na cestu ""
, tedy http://127.0.0.1:8000/
,
má se použít urls.py
soubor nacházející se ve složce
ahoj_svete/
.
Spuštění aplikace
Do terminálu napíšeme příkaz pro spuštění serveru:
py manage.py runserver
Na URL adrese http://127.0.0.1:8000/
nyní uvidíme stránku s
nápisem Ahoj světe!
:
V další lekci, Představení MVC a MVT architektury v Django, si vysvětlíme, jak funguje MVC architektura, tedy přesněji její MVT verze, kterou Django používá.
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkamiStaženo 1469x (7.72 kB)