Python, і по ній генерується схема бази даних [2].
Архітектура Django схожа на Модель-Представлення-Контролер (MVC). Контролер класичної моделі MVC приблизно відповідає рівню, який в Django називається Представлення (англ. View), а презентаційна логіка Уявлення реалізується в Django рівнем Шаблонів (англ. Template). Через це рівневу архітектуру Django часто називають Модель-Шаблон-Подання (MTV).
Первісна розробка Django, як засоби для роботи новинних ресурсів, досить сильно відбилася на його архітектурі: він надає ряд засобів, які допомагають у швидкій розробці веб-сайтів інформаційного характеру. Так, наприклад, розробнику не потрібно створювати контролери та сторінки для адміністративної частини сайту, в Django є вбудований додаток для управління вмістом, який можна включити в будь-який сайт, зроблений на Django, і яке може управляти відразу декількома сайтами на одному сервері. Адміністративне додаток дозволяє створювати, змінювати і видаляти будь-які об'єкти наповнення сайту, протоколюючи всі скоєні дії, і надає інтерфейс для управління користувачами і групами (з пооб'єктним призначенням прав).
У дистрибутив Django також включені програми для системи коментарів, синдикації RSS і Atom, статичних сторінок (якими можна управляти без необхідності писати контролери та подання), перенаправлення URL і іншого [2].
Розглянемо невеликий приклад, який демонструє різницю, який пропонує середу розробки. Покажемо як ви могли написати CGI код, скориставшись можливостями Django (см.приложение 1)
Головною ідеєю в Django є поділ завдань:
Файл models.py містить опис таблиці бази даних, представлене у вигляді класу Python. Такий клас називається моделлю. За допомогою даного класу ви можете створювати, одержувати, оновлювати і видаляти записи в таблиці вашої бази даних, використовуючи простий код мовою Python замість використання повторюваних SQL команд.
Файл views.py містить логіку відображення сторінки у функції latest_books (). Така функція називається поданням.
Файл urls.py визначає яке саме подання буде викликано для URL, заданого у вигляді шаблону. В даному випадку URL/latest/буде оброблено функцією latest_books (). Іншими словами, якщо ім'я вашого домену example, то будь-який доступ до example/latest/ буде оброблений функцією latest_books ().
Файл latest_books.html є HTML шаблоном, який описує дизайн сторінки. Він використовує шаблонний мову з основними логічними операторами - {% for book in book_list%}.
Об'єднані разом, ці компоненти програми слідують шаблоном Модель-Представлення-Контролер (Model-View-Controller, MVC). Приймемо, що MVC визначає спосіб розробки програмного забезпечення при якому код для визначення і доступу до даних (модель) відділений від логіки додатка (управління), яка в свою чергу відділена від інтерфейсу користувача (подання).
Основна перевага такого підходу полягає у свободі об'єднання цих компонентів. Отже, кожна окрема частина програми, створеного за допомогою Django, має одне призначення і може бути змінена незалежно, тобто, без впливу на інші компоненти. Наприклад, розробник може змінити URL для даної частини програми без зміни решти коду. Дизайнер може змінити HTML сторінки без внесення змін в код, який відображає сторінку. Адміністратор бази даних може перейменувати таблицю і визначити ці зміни в одному місці, замість того, щоб шукати і вносити зміни до безлічі файлів [2].
Веб-фреймворк Django використовується в таких великих і відомих сайтах, як Instagram, Disqus, Mozilla, The Washington Times, Pinterest та ін.
Також Django використовується як веб-компонента в різних проектах, таких як Graphite - система побудови графіків і моніторингу, FreeNAS - вільна реалізація системи зберігання та обміну файлами та ін.
Архітектура Django схожа на Модель-Представлення-Контролер (MVC). Контролер класичної моделі MVC приблизно відповідає рівню, який в Django називається Представлення (англ. View), а презентаційна логіка Уявлення реалізується в Django рівнем Шаблонів (англ. Template). Через це рівневу архітектуру Django часто називають Модель-Шаблон-Подання (MTV) [2].
Первісна розробка Django, як засоби для роботи новинних ресурсів, досить сильно відбилася на його архітектурі: він надає ряд засобів, які допомагають у швидкій розробці веб-сайтів інформаційного характеру. Так, наприклад, розробнику не потрібно створювати контролери та сторінки для адміністративної частини сайту, в Django є вбудований додаток для управління вмістом, який можна включити в будь-який сайт, зроблений на Django, і яке може управляти відразу декількома сайтами на одному сервері. Адміністративне додаток дозволяє створювати, змінювати і видаляти буд...