Как создавали сайты до Django и вообщем без фреймворков?
в начале 2000-ых, я открывала notepad и писала там html-код. жесткий. 
потом открывала другой notepad и писала там css-код.
потом это соединяла воедино. 
Потом был шаблон наипростейшего форума на PHP со своей БД.  Но шаблон форума был как черный ящик. 
Потом через БД я научилась делать менее жесткие html- страницы. К примеру, запрос возвращал ссылку на картинку, в зависимости от вводимого значения. 
Потом были сайты с FLASH-анимацией. 
Прошло много лет. 
Сейчас я пишу на питоне. Использую все возможные фрэймворки, какие только найду. Если не нахожу, то пишу сама. Сейчас я ненавижу веб-разработку, и все что с ней связано. 
Пишу дэсктопные приложения, скрипты для работы с дэсктопными приложениями и для работы с БД.
Не нужно не использовать фрэймворки. Это не совсем правильно. 
Для фана - да. Как некоторые художники сейчас сами делают акварель, а не покупают в магазине. Для понимания  работы - не самый лучший вариант. Нужно двигаться вперед. Понимание черного ящика придет само со временем.
Как и на любом другом языке.
1. Непосредственно данные, их обработка и хранение. Реляционная модель - один путь развития. Нереляционный путь — другая модель. В итоге есть код, который умеет работать с данными: сохранять, доставать по запросу. Ещё это называют «бизнес-логикой».
2. Представление данных. Некий код, который на входе принимает «сырые» данные, на выходе отдает html/xml/xsl. То, что можно отдать браузеру или любому другому клиентскому устройству.
3. Код, связывающий эти две сущности. В терминологии MVC его ещё называют контроллером. Он решает за какими данными пойти и какому представлению их отдать на отрисовку.
Получилось очень похоже на описание модели MVC. По-моему, — наиболее верная архитектура.