Django
Django Webový framework pro Python Projekt = webová stránka Aplikace = určitá funkcionalita webu
Instalace Django ve Windows Nutné mít nainstalovaný Python Ověříte příkazem py --version Stáhnout skript get-pip.py Spustit skript v příkazové řádce py get-pip.py a proběhne instalace Aby šlo psát v příkazové řádce pip, musí se přidat do PATH ve Variables: C:\Users\Petra\AppData\Local\Programs\Python\Python36\Scripts Samotné Django nainstalujete příkazem: pip install Django Ověříte příkazem django-admin --version
Vytvoření prvního projektu Na příkazové řádce se přesuňte do adresáře, kde chce projekt založit Nový projekt vytvoříte příkazem django-admin startproject <nazev> (např. django-admin startproject drivers) init.py: prázdný soubor, který říká Pythonu, že se jedná o balíček manage.py: skript k řízení vaší webové stránky (např. vytvoření aplikace, spuštění serveru) settings.py: nastavení/konfigurace pro Django projekt urls.py: deklarace URL adres pro váš Django projekt
Nastavení databáze Chcete-li vytvořit databázi, spusťte v konzoli příkaz: py manage.py migrate Pro spuštění musíte být v adresáři drivers Pokud bude vše v pořádku, uvidíte něco takového:
Spuštění serveru Přesuňte se do adresáře projektu stations Spusťte příkaz py manage.py runserver, který spustí vývojový server Djanga Do prohlížeče zadejte webovou adresu: http://127.0.0.1:8000/, která v případě, že je vše ok vypíše It worked! Pokud chcete změnit port serveru, použijte příkaz py manage.py runserver 8080
Model, šablona, pohled MVC (Model View Controller) MTV (Model Template View) Máme databázový model, z nějž získává data pohled (view), který je posílá HTML šabloně (template) Tak je oddělena definice dat, jejich zpracování a reprezentace Na cvičení vytvoříme aplikaci stations, reprezentující čerpací stanice patřící určitým společnostem
Vytváření modelů Model = soubor vlastností a činností (metod) pro daný objekt Pro vytvoření aplikace se přesuňte do adresáře drivers a zadejte příkaz: py manage.py startapp stations Vytvoří se adresář stations, který obsahuje celou řadu souborů (viz obr.) Po vytvoření aplikace je třeba Django projektu říct, aby aplikaci používal: To uděláme v souboru settings.py V něm najdeme INSTALLED APPS a přidáme řádek stations (viz obr.)
Vytváření modelů V souboru models.py budeme definovat všechny modely: Datové typy vlastností: models.charfield text s omezeným počtem znaků models.integerfield číselné pole models.textfield definuje dlouhý text bez omezení models.datetimefield definuje datum a čas models.foreignkey definuje odkaz do jiného modelu
Vytvoření tabulek pro modely v databázi Model v Django má jednu zvláštnost musí být uložen v databázi! Model v databázi si lze představit jako tabulku s řádky (data) a sloupci (údaje) Proto přidáme náš nový model do databáze pomocí příkazů: py manage.py makemigrations stations py manage.py migrate stations
Administrátorské rozhraní - superuser Pro přihlášení vytvořte uživatele superuser, který bude mít kontrolu nad celou webovou stránkou Chcete-li přidávat, upravovat a mazat objekty, musíte použít Django admin Pokud nyní spustíte server (příkazem py manage.py runserver) a podíváte se na adresu http://127.0.0.1:8000/admin, tak uvidíte toto přihlašovací okno: Chcete-li se přihlásit, musíte vytvořit superusera: do příkazové řádky zadejte: py manage.py createsuperuser
Administrátorské rozhraní - superuser Po přihlášení uvidíme pouze Groups a Users Chceme-li zpřístupnit i ostatní modely, musíme je přidat do aplikace stations Otevřeme soubor admin.py a nahradíme následujícím kódem (tím zaregistrujeme model na admin stránce):
Administrátorské rozhraní - superuser Spusťte znovu server, přihlaste se jako administrátor a ověřte, zda můžete spravovat modely Station a Company: Nyní si můžeme vyzkoušet přidat společnosti a stanice (Stanice: Shell, Společnost: Opava) Bohužel budou zobrazeny jako Company object, resp. Station object, což se nám nelíbí Proto otevřeme soubor models.py a k oběma třídám přidáme metodu pro vypsání objektu: Nyní jsou jednotlivé objekty označené svým jménem
Shell Slouží k vyhledávání objektů v interaktivní konzoli Spuštění konzole: py manage.py shell S čím chceme pracovat, tak je potřeba nejprve naimportovat >>> from stations.models import Station, Company >>> Station.objects.all() //vypíše všechny objekty Station v databázi >>> s = Station(name= Lhota, address= Lhota 1, active=true, cars_capacity = 3) >>> s.name = Lhotka >>> s.save() //uloží vytvořený objekt s do databáze >>> s.delete() //smaže objekt s z databáze
Shell >>> s = Station.objects.get(pk = 1) //nebo (name= Lhota ) vrátí objekt podle jméno místo primárního klíče >>> ss = Station.objects.filter(name contains= Op ) //vrátí stanice, kde jméno obsahuje Op
Pokračování příště