Если представить простую схему, она выглядит как-то так:
- в браузере отображается какая-то страница сайта. Пользователь может делать с ней какие-то вещи - вводить данные, запрашивать какой-то контент.
- сама страница делает запросы к серверу чтобы получить нужные пользователю данные, или, например отправляет данные введенные в форму. Причем сама страница тоже присылается с этого сервера.
- сервер может обращаться к базе данных чтобы брать оттуда что-нибудь нужное, или записывать туда.
Сервер в этой схеме может быть написан на разных языках программирования с использованием разных фреймворков. Django это один из них и написан на питоне. Тоже самое можно сделать, например, на javascript используя фреймворк Express, или на PHP с использованием Laravel.
Для более ясного понимания рекомендую почитать про http и всякие GET, POST и другие запросы, про взаимодействие клиента и сервера.