Сайт в активній розробці
Django - це фреймворк для створення веб-застосунків за допомогою мови програмування Python.
Django був створений у 2005 році, коли веб-розробники з газети Lawrence Journal-World почали використовувати Python як мову для створення веб-сайтів.
А у 2008 році вийшов публічний перший реліз фреймворку. На сьогоднішній день він продовжує розвиватись. Так, поточною версією фреймворку на момент написання цієї статті є версія 4.1, яка вийшла у серпні 2022 року. Кожен новий реліз фреймворку виходить у середньому кожні 8 місяців. Крім того, постійно виходять оновлення та виправлення в безпеці.
Django є досить популярним. Він використовується на багатьох сайтах, у тому числі таких, як Pinterest, PBS, Instagram, BitBucket, Washington Times, Mozilla та багатьох інших.
Фреймворк є безкоштовним. Він розвивається як open source, його вихідний код відкритий, його можна знайти репозиторії на GitHub.
На Django можна створювати широкий діапазон веб-застосунків: від невеликих персональних сайтів до високонавантажених складних веб-сервісів.
Django за замовчуванням пропонує готову функціональність для низки поширених завдань, наприклад, систему аутентифікації, генерацію карт сайту і т.д. завдяки чому нам можна не винаходити велосипеда і достатньо взяти вже готові компоненти.
У Django багато уваги приділяється безпеці, завдяки чому фреймворк допомагає розробникам уникнути багатьох поширених проблем у системі безпеки, наприклад, sql-ін'єкцій.
Фреймворк Django реалізує архітектурний патерн Model-View-Template або скорочено MVT, який є модифікацією поширеного у веб-програмуванні патерну MVC (Model-View-Controller).
Схематично ми можемо представити архітектуру MVT Django наступним чином:
Основні елементи патерну:
URL dispatcher: під час отримання запиту на підставі запитаної адреси URL визначає, який ресурс має обробляти цей запит.
View: отримує запит, обробляє його та надсилає у відповідь користувачеві деяку відповідь. Якщо для обробки запиту необхідне звернення до моделі та бази даних, View взаємодіє з ними. Для створення відповіді можна використовувати Template або шаблони.
В архітектурі MVC цьому компоненту відповідають контролери (але не уявлення).
Model: описує дані, що використовуються у додатку. Окремі класи, як правило, відповідають таблицям у базі даних.
Template: представляє логіку подання у вигляді згенерованої розмітки HTML. У MVC цьому компоненту відповідає View, тобто уявлення.
Коли до програми надходить запит, URL dispatcher визначає, з яким ресурсом зіставляється даний запит і передає цей запит обраному ресурсу. Ресурс фактично представляє функцію або View, який отримує запит та певним чином обробляє його.
У процесі обробки View може звертатися до моделей і бази даних, отримувати з неї дані, або, навпаки, зберігати дані. Результат обробки запиту відправляється назад, і цей результат бачить користувач у своєму браузері. Як правило, результат обробки запиту представляє згенерований html-код, для генерації якого використовуються шаблони (Template).