Django je výkonný, open-source, Python-based webový framework, ktorý zjednodušuje proces tvorby a správy webových stránok a webových aplikácií. Aplikácie v Django sú škálovateľné, vysoko výkonné a bezpečné. Obsahuje tiež naozaj dobrú dokumentáciu ku každej jednej časti frameworku.
V našej sérii o Django, sme skúmali Django implementáciou ukážkovej webovej stránky so základnými funkciami blogovania. V tomto návode si prejdeme kroky vytvorenia ukážkového zobrazenia (view) pre našu aplikáciu Django.
Požiadavky
Na sledovanie tohto návodu budete potrebovať nasledujúce komponenty.
- Server Ubuntu so správnou konfiguráciou. Prečítajte si viac o nastavení servera Ubuntu.
- Správne nakonfigurované vývojové prostredie Python.
- Databázový server, napríklad MySQL. Tento návod podrobnejšie popisuje inštaláciu a konfiguráciu MySQL na serveri Ubuntu.
Tento návod je pokračovaním našej série o Django. Najprv bude užitočné pozrieť si predchádzajúce návody o nastavení Django, nadviazaní pripojenia k databáze Django, vytváraní modelov, a povolenie administračného rozhrania Django.
V tomto návode si ukážeme, ako vytvoriť zobrazenia (views) v Django, ktoré umožnia webovej aplikácii správne spracovávať webové požiadavky a vracať príslušnú odpoveď. Ako popisuje oficiálna dokumentácia Django, webová odpoveď môže byť HTML obsah webovej stránky, presmerovanie alebo chyba HTTP. Neexistuje žiadne pevné miesto na ukladanie funkcií zobrazenia, pokiaľ sú v cestách Pythonu. Existujú však populárne konvencie pre pomenovanie a umiestnenie súborov. Tento návod sa bude týmito konvenciami riadiť.
Krok 1. Aktivácia virtuálneho prostredia
Django sa najlepšie prevádzkuje vo virtuálnom prostredí Pythonu. Naša aplikácia Django sample_app je vytvorená vo vyhradenom virtuálnom prostredí. Najprv aktivujte virtuálne prostredie:
|
1 2 3 |
cd sample_app/ . sample_app_env/bin/activate |
Krok 2. Vytvorenie funkcií zobrazenia
Prejdite do nášho adresára random_app ktorý hostí modely pre náš blogový web:
|
1 |
cd random_app/ |
Tu bude súbor views.py obsahovať kódy potrebné na vytvorenie našich zobrazení. Otvorte ho v textovom editore:
|
1 |
nano views.py |

Potrebujeme funkciu render() z knižnice django.shortcuts , takže prvý riadok zostáva rovnaký. Funkcia render() funkcia pomáha skombinovať šablónu aj kontext, ktoré sa vrátia ako správny objekt HttpResponse .
Prvé zobrazenie privíta používateľov, ktorí prídu na úvodnú stránku. Budeme musieť importovať funkciu HttpResponse() z knižnice Django http:
|
1 2 3 4 5 6 7 8 |
from django.shortcuts import render from django.http import HttpResponse def index(request): return HttpResponse(Dostali ste sa na uvítaciu stránku') def individual_post(request): return HttpResponse('Jednotlivé príspevky sa zobrazia tu') |

Uložte súbor a zatvorte editor.
Krok 3. Mapovanie URL adries na zobrazenia
V súčasnosti nie je pre tieto funkcie určená žiadna URL adresa, takže sú neprístupné. Musíme pridať ďalší blok urlpatterns v konfiguračnom súbore URL. V Pythone sa označuje ako súbor URLconf (konfigurácia URL).
Django potrebuje určiť koreňový modul URLconf , ktorý má použiť. Potom sa pozrie do urlpatterns , ktoré obsahujú všetky vzory URL v štruktúre zoznamu. Django potom prechádza súbor, kým nenájde prvú zhodu. Keď nájde zhodu, Django vyhľadá jej priradené zobrazenie. Táto funkcia zobrazenia prijme dáta súvisiace so vzorom URL a objekt HttpRequest . Chyba v ktoromkoľvek bode tohto procesu ju presmeruje na zobrazenie na spracovanie chýb.
Otvorte súbor urls.py aplikácie random_app v textovom editore:
|
1 |
nano urls.py |
Zadajte nasledujúci kód:
|
1 2 3 4 5 6 7 |
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), path('post/', views.individual_post, name='individual_post') ] |

Uložte súbor a zatvorte editor.
Po dokončení budeme musieť tiež zahrnúť cestu k súboru URL v sample_app adresárovom URLconf. V opačnom prípade ho naša aplikácia Django nerozpozná. Je to preto, že URLconf pre sample_app je nastavený ako ROOT_URLCONF v súbore nastavení.
Prejdite do adresára našej aplikácie sample_app:
|
1 |
cd sample_app/sample_app/sample_app/ |
![]()
Otvorte súbor urls.py v textovom editore:
|
1 |
nano urls.py |

Do súboru zadajte nasledujúci kód:
|
1 2 3 4 5 6 7 |
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('admin/', admin.site.urls), path('', include('random_app.urls')) ] |

Otestujme naše zmeny. Spusťte server aplikácie Django na localhost:8000:
|
1 |
python manage.py runserver localhost:8000 |

Prejdite na URL:
|
1 |
localhost:8000 |

Skontrolujte URL pre príspevok:
|
1 |
localhost:8000/posts |
Krok 4. Vytvorenie blogového príspevku
Vytvorili sme naše vzory URL a preskúmali ich fungovanie. Je čas pridať ukážkový blog a pozrieť si výsledok.
V administračnom paneli prejdite na stránku random_app :
|
1 |
localhost:8000/admin/random_app/ |

Kliknite na odkaz +Add v riadku Posts :

Na novej webovej stránke sa zobrazí formulár pozostávajúci z nasledujúcich polí.
- Názov: Názov blogového príspevku.
- Slug: Vzťahuje sa na časť platnej webovej adresy s ľahko čitateľnými kľúčovými slovami. Vo všeobecnosti sa slugi vytvárajú na základe názvu príspevku.
- Obsah: Telo blogového príspevku.
- Autor: Príslušné používateľské meno.
Kliknutím na SAVE odošlite príspevok:

Krok 5. Zobrazenie údajov v databáze
V tejto ďalšej časti budeme pracovať s našou databázou. Prihláste sa do MySQL ako vyhradený používateľ pre Django:
|
1 |
mysql -u sample_app_user -p |

Overme, či bol náš príspevok úspešne zaregistrovaný v databáze:
|
1 |
USE sample_app_data; |

|
1 |
SELECT * FROM random_app_post; |

Voila! Príspevok bol úspešne zaregistrovaný! Teraz môžete ukončiť shell MySQL.
Krok 6. Ďalšie úpravy zobrazení
S našimi zobrazeniami môžeme urobiť ešte niekoľko vecí. Otvorte súbor v textovom editore:
|
1 |
nano views.py |
Kód by mal vyzerať takto:
|
1 2 3 4 5 6 7 8 9 10 |
from django.shortcuts import render from django.http import HttpResponse from .models import Post def index(request): return HttpResponse('Hello, welcome to the index page.') def individual_post(request): recent_post = Post.objects.get(id__exact=1) return HttpResponse(recent_post.title + ': ' + recent_post.content) |

Tu sme pridali dodatočný príkaz import pre Post. Reťazec v úvodzovkách z HttpResponse je tiež nahradený údajmi z nášho blogového príspevku. Na odkazovanie na údaje používame ID blogového príspevku s pridruženým objektom. ID sa ukladá do premennej recent_post. Teraz môžeme extrahovať konkrétne polia objektu pridaním názvu poľa za bodku.
Po vykonaní zmien ich overme. Spusťte server Django:
|
1 |
python manage.py runserver localhost:8000 |

Teraz prejdite na stránku Posts :
|
1 |
localhost:8000/posts |

Malo by to zobraziť blogový príspevok, ktorý sme vytvorili.
Krok 7. Ukončenie projektu
Pre ukončenie servera Django stlačte Ctrl + C v termináli. Ak chcete deaktivovať virtuálne prostredie Python, spustite nasledujúci príkaz:
|
1 |
deactivate |
Záverečné myšlienky
V tejto príručke sme úspešne demonštrovali vytváranie zobrazení, mapovanie vzorov URL a zobrazovanie textov na webovej stránke z databázy random_app v Django.Toto sú základné koncepty Django, ktoré je potrebné pochopiť a zvládnuť.
Tu sú ďalšie zdroje, ktoré vám pomôžu vytvárať a spravovať aplikácie Django:
- Vytvorenie aplikácie Django s pripojením k databáze: Návod
- Vytvorenie aplikácie Django a Gunicorn s Dockerom na Ubuntu
- Ako zabezpečiť a škálovať aplikáciu Django s Dockerom, Nginx a Let’s Encrypt
Príjemné programovanie!

Komentáre
Zatiaľ žiadne komentáre. Buďte prvý.