809. Podstawy wnikliwiej. Czym jest aplikacja w Django? Czym jest backend w Django? Dlaczego middleware nie jest backendem?

    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.