Django je výkonný, open-source, Python-ový webový framework, který zjednodušuje proces tvorby a správy webových stránek a webových aplikací. Aplikace v Django jsou škálovatelné, vysoce výkonné a bezpečné. Přichází také s opravdu dobrou dokumentací pro každou jednotlivou část frameworku.
V naší sérii o Django, jsme prozkoumávali Django implementací ukázkového webu se základními funkcemi blogu. V tomto návodu si projdeme kroky vytvoření ukázkového pohledu (view) pro naši aplikaci v Django.
Požadavky
Chcete-li postupovat podle tohoto návodu, budete potřebovat následující komponenty.
- Server Ubuntu se správnou konfigurací. Zjistěte více o nastavení serveru Ubuntu.
- Správně nakonfigurované vývojové prostředí Pythonu.
- Databázový server, například MySQL. Tento návod podrobněji popisuje instalaci a konfiguraci MySQL na serveru Ubuntu.
Tento návod je pokračováním naší série o Django. Nejprve bude užitečné podívat se na předchozí návody na nastavení Django, navázání připojení k databázi v Django, vytváření modelů, a povolení administračního rozhraní Django.
V tomto návodu si ukážeme, jak vytvořit pohledy (views) v Django, které webové aplikaci umožní správně zpracovávat webové požadavky a vracet odpovídající odpovědi. Jak popisuje oficiální dokumentace Django, webovou odpovědí může být HTML obsah webové stránky, přesměrování nebo chyba HTTP. Neexistuje žádné pevné místo pro ukládání funkcí pohledů, pokud jsou v cestách Pythonu. Existují však oblíbené konvence pro pojmenování a umístění souborů. Tento návod se bude těmito konvencemi řídit.
Krok 1. Aktivace virtuálního prostředí
Django se nejlépe provozuje ve virtuálním prostředí Pythonu. Naše aplikace Django sample_app je vytvořena ve vyhrazeném virtuálním prostředí. Nejprve aktivujte virtuální prostředí:
|
1 2 3 |
cd sample_app/ . sample_app_env/bin/activate |
Krok 2. Vytváření funkcí pohledů
Přejděte do našeho adresáře random_app který hostuje modely pro náš blogový web:
|
1 |
cd random_app/ |
Zde soubor views.py bude obsahovat kódy potřebné pro vytvoření našich pohledů. Otevřete jej v textovém editoru:
|
1 |
nano views.py |

Potřebujeme funkci render() z knihovny django.shortcuts , takže první řádek zůstává stejný. Funkce render() funkce pomáhá spojit šablonu i kontext, které se mají vrátit jako odpovídající HttpResponse objekt.
První pohled přivítá uživatele, kteří přistanou na úvodní stránce. Budeme muset importovat funkci HttpResponse() z knihovny 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(Ocitli jste se na uvítací stránce') def individual_post(request): return HttpResponse('Zde se zobrazí jednotlivé příspěvky') |

Uložte soubor a zavřete editor.
Krok 3. Mapování URL na pohledy
V tuto chvíli není k těmto funkcím přiřazena žádná URL, takže jsou nedostupné. Musíme přidat další blok urlpatterns v konfiguračním souboru URL. V Pythonu se označuje jako soubor URLconf (konfigurace URL).
Django potřebuje určit kořenový modul URLconf , který má použít. Poté se podívá do urlpatterns , které obsahují všechny vzory URL v seznamové struktuře. Django pak prochází soubor, dokud nenajde první shodu. Jakmile najde shodu, Django vyhledá přidružený pohled. Tato funkce pohledu obdrží data související se vzorem URL a objekt HttpRequest . Chyba v jakémkoli bodě tohoto procesu jej přesměruje na pohled pro zpracování chyb.
Otevřete soubor urls.py v random_app v textovém editoru:
|
1 |
nano urls.py |
Zadejte následující 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 soubor a zavřete editor.
Jakmile to budete mít hotové, budeme muset také zahrnout cestu k souboru URL pod sample_app adresáře URLconf. V opačném případě jej naše aplikace Django nerozpozná. Je to proto, že URLconf aplikace sample_app je nastaven jako ROOT_URLCONF v souboru nastavení.
Přejděte do adresáře naší aplikace sample_app:
|
1 |
cd sample_app/sample_app/sample_app/ |
![]()
Otevřete soubor urls.py v textovém editoru:
|
1 |
nano urls.py |

Do souboru vložte následující 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')) ] |

Pojďme otestovat naše změny. Spusťte server aplikace Django na localhost:8000:
|
1 |
python manage.py runserver localhost:8000 |

Přejděte na URL:
|
1 |
localhost:8000 |

Zkontrolujte URL příspěvku:
|
1 |
localhost:8000/posts |
Krok 4. Vytvoření příspěvku na blogu
Nastavili jsme naše vzory URL a prozkoumali jejich fungování. Je čas přidat ukázkový blog a podívat se na výsledek.
V administračním panelu přejděte na random_app stránku:
|
1 |
localhost:8000/admin/random_app/ |

Klikněte na odkaz +Add v řádku Posts :

Na nové webové stránce se zobrazí formulář obsahující následující pole.
- Title: Název příspěvku na blogu.
- Slug: Odkazuje na část platné webové adresy s lidsky čitelnými klíčovými slovy. Obecně se slugy vytvářejí z názvu příspěvku.
- Content: Tělo příspěvku na blogu.
- Author: Příslušné uživatelské jméno.
Kliknutím na SAVE příspěvek odešlete:

Krok 5. Zobrazení dat v databázi
V této další části budeme pracovat s naší databází. Přihlaste se do MySQL jako uživatel vyhrazený pro Django:
|
1 |
mysql -u sample_app_user -p |

Ověřme, zda byl náš příspěvek úspěšně zaregistrován v databázi:
|
1 |
USE sample_app_data; |

|
1 |
SELECT * FROM random_app_post; |

Voila! Příspěvek byl úspěšně zaregistrován! Nyní můžete ukončit MySQL shell.
Krok 6. Další úpravy zobrazení
S našimi zobrazeními (views) můžeme udělat ještě několik věcí. Otevřete soubor v textovém editoru:
|
1 |
nano views.py |
Kód by měl vypadat 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) |

Zde jsme přidali další příkaz import pro Post. Řetězec v uvozovkách z HttpResponse je také nahrazen daty z našeho příspěvku na blogu. Pro odkazování na data používáme ID příspěvku na blogu s přidruženým objektem. ID se ukládá do proměnné recent_post. Nyní můžeme extrahovat konkrétní pole objektu připojením názvu pole odděleného tečkou.
Po provedení změn je pojďme ověřit. Spusťte server Django:
|
1 |
python manage.py runserver localhost:8000 |

Nyní přejděte na stránku Posts :
|
1 |
localhost:8000/posts |

Měl by se zobrazit příspěvek na blogu, který jsme vytvořili.
Krok 7. Ukončení projektu
Pro ukončení serveru Django stiskněte Ctrl + C v terminálu. Pro deaktivaci virtuálního prostředí Python spusťte následující příkaz:
|
1 |
deactivate |
Závěrečné myšlenky
V tomto návodu jsme úspěšně demonstrovali vytváření pohledů, mapování vzorů URL a zobrazování textů na webové stránce z databáze random_app v Django.Jedná se o základní koncepty Django, které je nutné pochopit a ovládnout.
Zde jsou další zdroje, které vám pomohou vytvářet a spravovat aplikace v Django:
- Vytvoření aplikace v Django s připojením k databázi: Návod
- Sestavení aplikace Django a Gunicorn pomocí Dockeru na Ubuntu
- Jak zabezpečit a škálovat aplikaci Django pomocí Dockeru, Nginx a Let’s Encrypt
Příjemné programování!

Komentáře
Zatím žádné komentáře. Buďte první.