Szablony i statyczne pliki w Django
1. Wprowadzenie do systemu szablonów Django
Django posiada wbudowany system szablonów (Django Template Language – DTL), który umożliwia:
- oddzielenie logiki aplikacji od warstwy prezentacji,
- dynamiczne generowanie stron HTML,
- korzystanie z konstrukcji takich jak zmienne, pętle, instrukcje warunkowe, filtry.
Tworzenie folderu templates
Najczęściej w każdej aplikacji tworzy się katalog templates/, a w nim podfolder odpowiadający nazwie aplikacji.
Przykład dla aplikacji blog:
blog/
├── templates/
│ └── blog/
│ └── index.html
Ustawienia w settings.py
Django automatycznie wykrywa foldery templates w aplikacjach, ale dla projektów globalnych możemy ustawić własne ścieżki:
Użycie szablonu w widoku
W views.py zamiast HttpResponse korzystamy z funkcji render():
2. Template tags i filtry
Szablony Django wykorzystują specjalną składnię:
- Zmienne – zapis w
{{ }}. - Tagi szablonowe – sterują logiką (
{% %}). - Filtry – modyfikują wartości.
Przykłady
Zmienne:
Instrukcje warunkowe:
Pętle:
Filtry:
Ładowanie plików statycznych w szablonie:
3. Przekazywanie danych z widoku do szablonu
Dane przekazujemy przez kontekst w funkcji render().
Przykład:
Widok (views.py):
Szablon (index.html):
4. Obsługa plików statycznych (CSS, JS, obrazki)
Statyczne pliki to m.in. arkusze stylów, pliki JavaScript, obrazy. Django pozwala je łatwo organizować.
Konfiguracja w settings.py
Domyślne ustawienia:
Struktura plików
Przykład:
project/
├── static/
│ ├── css/
│ │ └── style.css
│ ├── js/
│ │ └── app.js
│ └── images/
│ └── logo.png
Każda aplikacja może też mieć swój folder static/:
blog/
├── static/
│ └── blog/
│ └── style.css
Wczytywanie plików w szablonach
- Na początku szablonu ładujemy system statycznych plików:
- Następnie odwołujemy się do nich: