Czy możemy powiedzieć, że w Django: backend == aplikacja?
Nie, w Django backend to nie to samo co aplikacja, ale czasem oba terminy mogą być używane w podobnym kontekście.
Dwa pojęcia się różnią i ich role w Django są różne.
Aplikacja w Django to moduł funkcjonalny projektu. Jest to folder z kodem, który realizuje określoną część logiki aplikacji,
np. blog, sklep internetowy czy system rezerwacji. Aplikacje mogą być:
- Samodzielne: Mogą działać niezależnie, np. biblioteka Django REST Framework.
- Zintegrowane: Mogą być częścią większego projektu Django, np. aplikacja obsługująca użytkowników (users).
Backend w Django to moduł odpowiadający za realizację konkretnej funkcji systemowej, jak obsługa cache, bazy danych czy uwierzytelniania.
Backend nie jest pełną aplikacją, a jedynie wymienialnym komponentem, który realizuje jedną specyficzną funkcję.
Zatem, jest definiowany jako moduł odpowiedzialny za realizację wymiennych mechanizmów obsługi funkcji technicznych systemu.
To obejmuje:
- Przechowywanie danych (DATABASES).
- Przechowywanie cache (CACHES).
- Mechanizmy uwierzytelniania (AUTHENTICATION_BACKENDS).
- Inne funkcje wymienne, np. email backend (EMAIL_BACKEND).
Dlaczego middleware to nie backend w sensie Django?
To jest kwestia nazewnictwa i określonej umowy. Middleware ewentualnie można by nazwać Backendem.
- W typowym rozumieniu Django Middleware nie jest klasyfikowane jako backend.
- Jednakże w szerszym rozumieniu backendu, na pewno można je traktować jako element "niewidoczny" dla użytkownika, który ma na celu wspieranie
aplikacji i interakcję z jej zasobami, co sprawia, że middleware również może być częścią backendu w szerszym znaczeniu.