Pierwsza aplikacja w Django

Po utworzeniu projektu Django (np. myproject), możemy zacząć dodawać do niego aplikacje. Każda aplikacja to niezależny moduł odpowiadający za określoną funkcjonalność (np. blog, system logowania, sklep). Projekt Django może składać się z wielu aplikacji, które razem tworzą kompletną aplikację webową.


1. Tworzenie aplikacji (python manage.py startapp)

W terminalu, w folderze głównym projektu, uruchamiamy komendę:

Powstaje folder o nazwie blog ze strukturą:

blog/
│
├── admin.py
├── apps.py
├── migrations/
│   └── __init__.py
├── models.py
├── tests.py
├── views.py
└── __init__.py

Opis plików w aplikacji:

  • admin.py – rejestracja modeli w panelu administracyjnym.
  • apps.py – konfiguracja aplikacji (nazwa, ścieżki).
  • migrations/ – folder plików migracji dla bazy danych.
  • models.py – definicja modeli (odwzorowanie struktur bazy danych w Pythonie).
  • tests.py – testy jednostkowe.
  • views.py – logika aplikacji (funkcje/klasy odpowiadające za obsługę żądań HTTP).
  • __init__.py – plik inicjalizacyjny modułu.

2. Rejestracja aplikacji w projekcie

Aby aplikacja działała w projekcie, musimy zarejestrować ją w pliku settings.py w folderze głównym projektu.

W sekcji INSTALLED_APPS dodajemy nazwę aplikacji:

Dzięki temu Django wie, że aplikacja blog należy do projektu.


3. Pierwsze widoki (views.py)

Widoki (ang. views) odpowiadają za logikę aplikacji – definiują, co użytkownik zobaczy po wejściu na daną stronę.

Przykład prostego widoku w blog/views.py:

Tutaj:

  • request – obiekt reprezentujący żądanie HTTP (np. GET, POST).
  • HttpResponse – zwraca odpowiedź HTTP z tekstem.

Widoki mogą być funkcjami lub klasami (tzw. Class-Based Views), ale na początku zwykle korzysta się z widoków funkcyjnych.


4. Routing – urls.py na poziomie projektu i aplikacji

1. Routing na poziomie aplikacji

Każda aplikacja powinna mieć własny plik urls.py (domyślnie nie jest tworzony, trzeba go dodać ręcznie).

W folderze blog/ tworzymy plik urls.py:

  • path('', views.index, ...) – oznacza, że pod adresem /blog/ zostanie wywołany widok index.
  • name='index' – nadaje nazwę ścieżce (przydatne w szablonach i linkach).

2. Routing na poziomie projektu

W głównym pliku myproject/urls.py musimy „podłączyć” routing z aplikacji.

Edytujemy plik myproject/urls.py:

Dzięki temu wszystkie ścieżki z blog/urls.py będą dostępne pod adresem /blog/.


3. Sprawdzenie działania

  • Uruchamiamy serwer:
  • Wchodzimy w przeglądarce na:
   http://127.0.0.1:8000/blog/
  • Powinniśmy zobaczyć:
   Witaj w moim blogu!