Views

Na začiatku sme si ukazovali jednoduchý pohľad, ktorý bol reprezentovaný funkciou vracajúcou v odpovedi HTML kód. Dnes však upustíme od tohto typu pohľadov a pozrieme sa na tzv. Class Based View-s, ktoré je doporúčané používať pri tvorbe webových aplikácií v Djangu. Ukážeme si teda niekoľko typov týchto pohľadov.

Ešte predtým však doinštalujeme ďalší balíček s názvom django-bootstrap3. Tento balíček nám pomôže jednoduchšie používať webový rámec Bootstrap priamo v Djangu bez toho, aby sme museli ručne vytvárať vlastné šablóny. To je výhodné hlavne vtedy, ak nie ste s HTML veľkí kamaráti ;)

pip install django-bootstrap3

Následne treba v nastaveniach (súbor settings.py) pridať novú aplikáciu do zoznamu existujúcich aplikácií:

INSTALLED_APPS = [
    ...
    'bootstrap3',
    ...
]

TemplateView

Tento pohľad, ako už názov hovorí, je založený na šablóne. Vytvoríme teda jednoduchý pohľad, ktorý bude reprezentovať domovskú stránku. Vytvoríme teda triedu s názvom Homepage, ktorá bude potomkom triedy TemplateView v súbore views našej aplikácie:

class HomePage(TemplateView):
    pass

Trieda je zatiaľ prázdna. Ak však má byť tento pohľad založený na šablóne, musíme ešte povedať, na akej:

class HomePage(TemplateView):
    template_name = 'homepage.html'

Aby tento pohľad mohol začať pracovať, je potrebné zaregistrovať tento pohľad do súboru urls.py našej aplikácie:

urlpatterns = [
    ...
    url(r'^$', HomePage.as_view(), name='home'),
    ...
]

Následne už stačí len otvoriť prehliadač na adrese http://127.0.0.1:8000/bank/

Problém však je, že sa nám zobrazí chyba s informáciou, že neexistuje šablóna s názvom homepage.html spolu so zoznamom umiestnení, kde sa systém snažil túto šablónu nájsť.

Zoznam klientov pomocou ListView

Trieda reprezentujúca pohľad v súbore views.py:

class ClientListView(ListView):
    model = Client

Zaregistrovanie pohľadu v súbore urls.py aplikácie:

urlpatterns = [
    ...
    url(r'clients/$', ClientListView.as_view(), name='clients_list'),
    ...
]

Vytvorenie šablóny:

Detailný pohľad na klienta pomocou DetailView

Trieda reprezentujúca pohľad v súbore views.py:

class ClientDetailView(DetailView):
    model = Client

Zaregistrovanie pohľadu v súbore urls.py aplikácie:

urlpatterns = [
    ...
    url(r'clients/(?P<pk>\d+)$', ClientDetailView.as_view(), name='clients_detail'),
    ...
]

Vytvorenie šablóny:

Resources

results matching ""

    No results matching ""