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: