ь-які об'єкти наповнення сайту, протоколюючи всі скоєні дії, і надає інтерфейс для управління користувачами і групами (з пооб'єктним призначенням прав) [2] [7].
У дистрибутив Django також включені програми для системи коментарів, синдикації RSS і Atom, статичних сторінок (якими можна управляти без необхідності писати контролери та подання), перенаправлення URL та інше.
. 1.3 ORM
ORM - технологія програмування, яка пов'язує бази даних з концепціями об'єктно-орієнтованих мов програмування, створюючи віртуальну об'єктну базу даних raquo ;. Існують як пропрієтарні, так ісвободние реалізації цієї технології.
У об'єктно-орієнтованому програмуванні об'єкти в програмі представляють об'єкти з реального світу. Як приклад можна розглянути адресну книгу, яка містить список людей з нулем або більше телефонів і нулем або більше адрес. У термінах об'єктно-орієнтованого програмування вони будуть представлятися об'єктами класу Людина raquo ;, які будуть містити наступний список полів: ім'я, список (або масив) телефонів і список адрес [3].
Суть завдання полягає в перетворенні таких об'єктів у форму, в якій вони можуть бути збережені в файлах або базах даних, і які легко можуть бути вилучені в подальшому, із збереженням властивостей об'єктів і відносин між ними. Ці об'єкти називають збереженими (англ. persistent). Історично існує кілька підходів до вирішення цього завдання.
Для розробників програмного забезпечення не є секретом, що в світі зберігання даних домінують реляційні СУБД, тоді як об'єктний підхід до проектування і програмування - у світі обробки даних. В рамках статті ми не будемо обговорювати, чому так сталося і чи гарна сформована ситуація, ми приймемо її за даність і постараємося знайти кошти дозволу. Для цього проблему потрібно спочатку сформулювати, адже, як відомо, правильно поставлена ??задача вже половина рішення [3].
Об'єктна і реляційна моделі ортогональні. Це означає, що вони моделюють одну і ту саму сутність, але з різних боків, під різними, я б сказав перпендикулярними кутами зору. Реляційна модель акцентує свою увагу на структурі і зв'язках сутностей, об'єктна - на їхніх властивостях і поведінці. Мета використання реляційної моделі - інформаційне моделювання, виділення істотних для нас атрибутів, збереження їх значень і подальшого пошуку, обробки та аналізу. Мета використання об'єктної - моделювання поведінки, виділення істотних для нас функцій і подальшого їх використання. Між моделями є перетин - структурні сутності, які по-різному в цих моделях відображаються. Для того, щоб відобразити артефакти реляційної моделі в артефакти ж об'єктної в наших програмах і потрібно засіб об'єктно-реляційної проекції - ОРП або широко поширене англомовне позначення - ORM (Object Relational Mapping).
Висловлюючись більш звичною мовою, об'єктно-реляційний проектор - ОРП - теоретично дозволяє програмісту працювати з таблицями, полями і зв'язками реляційної БД, як з об'єктами, властивостями і колекціями (масивами), не відволікаючись на подробиці більш низького рівня, такими, наприклад, як порядок вибірки і збереження модифікованих даних, питання переносимості та особливостей діалекту SQL конкретної СУБД, генерації унікальних первинних ключів, заповнення полів посилань для моделювання зв'язків [3] [7].
. 1.4 MVC
Model-view-controller (MVC, Модель-подання-поведінку raquo ;, Модель-подання-контролер ) - схема використання декількох шаблонів проектування, за допомогою яких модель даних програми, користувальницький інтерфейс і взаємодія з користувачем розділені на три окремих компонента так, що модифікація одного з компонентів надає мінімальний вплив на інші. Дана схема проектування часто використовується для побудови архітектурного каркаса, коли переходять від теорії до реалізації в конкретній предметній області.
Концепція MVC була описана в 1979 році Трюгве Реенскаугом (англ. Trygve Reenskaug), тоді працюючим над мовою програмування Smalltalk в Xerox PARC. Оригінальна реалізація описана в статті Applications Programming in Smalltalk - 80: How to use Model-View-Controller raquo ;. Потім Джим Алтофф з командою розробників реалізували версію MVC для бібліотеки класів Smalltalk - 80.
У оригінальної концепції була описана сама ідея і роль кожного з елементів: моделі, подання та контролера. Але зв'язки між ними були описані без конкретизації. Крім того, розрізняли дві основні модифікації:
1. Пасивна модель - модель не має жодних способів впливати на подання або контролер, і використовується ними як джерело даних для відображення. Всі зміни моделі відслідковуються контролером і він же відповідає за перерисовку уявлення, якщо це необхідно. Така модел...