You are on page 1of 20

1

Міністерство освіти і науки України


Національний університет «Одеська політехніка»
Інститут комп’ютерних систем
Кафедра інформаційних систем

РЕФЕРАТ
З дисципліни: «Технології комп’ютерного проектування»
Тема: «Фреймворк Django в термінах UML»

Виконав:
Студент групи АІ-216
Перепелиця Р.О.
Перевірили:
Бабіч М.І.

Одеса 2023
2

ЗМІСТ

Вступ……………………………………………………….….….....................3
1. Визначення Django…………………………………………………………4
2. Архітектура Django………………………………………………………...9
2.1 MVC…………………………………………………………………9
2.2 ORM………………………………………………………………..10
2.3
API………………………………………………………………….13
2.4 Чи є Django
гнучким?......................................................................15
3. Застосування................................................................................................16

Висновок...........................................................................................................18
Перелік використаних
джерел........................................................................19
3

ВСТУП

На даний час є дуже багато веб-додатків, які різними способами


покращують та полегшують наше життя. Веб-додаток — це програмне
забезпечення або програма, яку можна відкрити за допомогою будь-якого
браузера. Зовнішній інтерфейс веб програми розробляється за допомогою таких
мов програмування: HTML, CSS, Javascript, які підтримуються на будь-якому
браузері (Opera, Chrome, Mozilla, Microsoft Edge). У той час як для написання
серверної частини (Back-end) може використовуватися будь-яка інша мова
програмування або фреймворк, Python, PhP, Ruby, Java.
Без високорівневого фреймворку дуже складно розробити веб-додаток.
Саме для цього був створений Django — веб-фреймворк, який став одним з
найпопулярніших інструментів для розробки веб-додатків. Він був створений
для швидкої та ефективної розробки високоякісних веб-додатків з
використанням мови програмування Python. Django надає зручний інтерфейс
для взаємодії з базами даних, вбудовану систему аутентифікації та авторизації
користувачів, а також багатий інструментарій для роботи зі зображеннями,
електронною поштою та іншими складовими веб-додатків.
Для розробки на Django не потрібно бути досвідченим програмістом -
фреймворк дозволяє швидко створювати складні функціональність,
використовуючи готові модулі та шаблони. Django підтримує розширення та
модульну архітектуру, що дозволяє створювати масштабовані та гнучкі
додатки.
У даному рефераті будуть розглянуті матеріали про фреймворк Django в
термінах UML.
4

1 ВИЗНАЧЕННЯ DJANGO

Django — високорівневий відкритий Python-фреймворк (програмний


каркас) для розробки вебсистем. Названо його було на честь джазмена Джанго
Рейнхардта (відповідно до музичних смаків одного зі засновників проєкту).
Проєкт підтримується організацією Django Software Foundation.

Рисунок 1.1 — Фреймворки Python

Django допомагає писати програмне забезпечення, яке буде:


 Повним. Django слідує філософії «Все включено» і надає майже все, що
розробники можуть захотіти зробити «з коробки». Оскільки все, що вам
потрібно, є частиною єдиного продукту, все це бездоганно працює разом,
5

відповідає послідовним принципам проектування і має велику і актуальну


документацію.
 Різностороннім. Django може бути (і був) використаний для створення
практично будь-якого типу веб-сайтів – від систем керування контентом
та wiki до соціальних мереж та новинних сайтів. Він може працювати з
будь-яким середовищем клієнта і може доставляти контент практично в
будь-якому форматі (включаючи HTML, RSS-канали, JSON, XML і т. д.).
Хоча Django надає рішення практично для будь-якої функціональності,
яка вам може знадобитися (наприклад, для кількох популярних баз даних,
шаблонізаторів тощо), внутрішньо він також може бути розширений
сторонніми компонентами, якщо це необхідно.
 Безпечним. Django допомагає розробникам уникнути багатьох
поширених помилок безпеки, надаючи фреймворк, розроблений для того,
щоб «робити правильні речі» для автоматичного захисту сайту.
Наприклад, Django надає безпечний спосіб керування обліковими
записами користувачів та паролями, уникаючи поширених помилок,
таких як розміщення інформації про сеанс у файли cookie, де вона
вразлива (замість цього файли cookie містять лише ключ, а фактичні дані
зберігаються в базі даних) або безпосереднє зберігання паролів замість
хешу пароля. Хеш пароля (приклад хешування на рис. 1.2) - це значення
фіксованої довжини, створене шляхом обробки пароля через
криптографічну хеш-функцію. Django може перевірити правильність
введеного пароля, пропустивши його через хеш-функцію і порівнявши
виведення зі збереженим значенням хеш. Завдяки «односторонньому»
характеру функції, навіть якщо збережене хеш-значення
скомпрометоване, зловмиснику буде складно визначити вихідний пароль.
Django, за умовчанням, забезпечує захист від багатьох уразливостей,
включаючи SQL-ін'єкцію, міжсайтовий скриптинг, підробку міжсайтових
запитів та клікджекінг.
6

 Масштабованим. Django використовує компонентну "shared-nothing"

архітектуру — кожна її частина є незалежною від інших і, отже, може


бути замінена або змінена, якщо це необхідно (приклад "shared-nothing"
архітектури на рис. 1.3). Чіткий поділ частин означає, що Django може
масштабуватися при збільшенні трафіку шляхом додавання обладнання
на будь-якому рівні: сервери кешування, сервери баз даних або сервери
додатків. Одні з найбільш завантажених сайтів успішно масштабували
Django (наприклад, Instagram та Disqus).
 Зручним у супроводі. Код Django написаний з використанням принципів

і шаблонів проектування, які заохочують створення коду, що


підтримується і повторно використовується. Зокрема, у ньому
використовується принцип "Don't Repeat Yourself" (DRY, "не
повторюйся"), тому немає непотрібного дублювання, що скорочує обсяг
коду. Django також сприяє групуванню пов'язаних функціональних
можливостей у повторно використовувані «додатки» і, на нижчому рівні,
групує зв'язаний код у модулі.
 Переносним. Django написано на Python, який працює на багатьох

платформах. Це означає, що ви не прив'язані до будь-якої конкретної


серверної платформи і можете запускати програми на багатьох версіях
Linux, Windows і Mac OS X. Крім того, Django добре підтримується
багатьма веб-хостингами, які часто надають певну інфраструктуру та
документацію для розміщення сайтів Django.
7

Рисунок 1.2 — Хешування пароля (сіль — це випадкові дані, які


використовуються як додатковий вхід для односторонньої функції, яка хешує
дані, наприклад пароль)

Рисунок 1.3 — Архітектура "shared-nothing"

Деякі можливості Django:


 ORM, API доступу до БД з підтримкою транзакцій;
 вбудований інтерфейс адміністратора з уже наявними перекладами на
більшість мов;
 диспетчер URL на основі регулярних виразів;
 розширювана система шаблонів з тегами та наслідуванням;
 система кешування;
8

 інтернаціоналізація;
 архітектура застосунків, що підключаються, які можна встановлювати на
будь-які Django-сайти;
 «generic views» — шаблони функцій контролерів;
 авторизація та аутентифікація, підключення зовнішніх модулів
аутентифікації: LDAP, OpenID та ін.;
 система фільтрів («middleware») для побудови додаткових обробників
запитів, наприклад включені в дистрибутив фільтри для кешування,
стиснення, нормалізації URL і підтримки анонімних сесій;
 бібліотека для роботи з формами (наслідування, побудова форм за
існуючою моделлю БД);
 вбудована автоматична документація по тегам шаблонів та моделям
даних, доступна через адміністративний застосунок.
Різні компоненти фреймворку між собою пов'язані слабо, тому достатньо
будь-яку частину замінити на аналогічну. Наприклад, замість вбудованих
шаблонів можна використовувати Mako
9

2 АРХІТЕКТУРА DJANGO

Сайт на Django будується з однієї або декількох частин, які


рекомендується робити модульними. Це одна з істотних архітектурних
відмінностей цього фреймворку від деяких інших (наприклад Ruby on Rails).

2.1 MVC
Архітектура Django подібна на «Модель-Вигляд-Контролер» (MVC).
Однак, те що називається «контролером» в класичній моделі MVC, в Django
називається «вигляд» (view), а те, що мало б бути «виглядом», називається
«шаблон» (template). Таким чином, MVC розробники Django називають MTV
(«Модель-Шаблон-Вигляд»).
Модель — це об’єкт, який визначає структуру даних у додатку Django.
Він відповідає за підтримку всіх даних програми, для яких він надає різні
механізми для додавання, оновлення, читання та видалення даних у базі даних.
Вигляд — це функція обробки, яка приймає запити HTTP, обробляє їх і
повертає відповідь HTTP. Він отримує необхідні дані для виконання запиту за
допомогою моделей і відображає їх в інтерфейсі користувача за допомогою
шаблонів. Він також може динамічно створювати HTML-сторінку за
допомогою шаблону HTML і заповнювати її даними, отриманими з моделі.
10

Шаблон — це текстовий файл, який визначає структуру або макет


інтерфейсу користувача. Текстовий файл може бути файлом будь-якого типу;
наприклад HTML, XML тощо. Він може приймати дані з представлення та
відтворювати їх за допомогою синтаксису jinja.

Рисунок 2.1 — Взаємодія між компонентами шаблону MVC

2.2 ORM
ORM (об'єктно-реляційна проєкція) — технологія програмування, яка
зв'язує бази даних з концепціями об'єктно-орієнтованих мов програмування,
створюючи «віртуальну об'єктну базу даних».
11

Рисунок 2.2 — ORM фреймворк

Основною метою ORM є передача даних між базою даних і моделями в


додатку. Вона відображає відношення між базою даних і моделлю. Отже, ORM
відображає атрибути об’єкта в поля таблиці. Основна перевага використання
ORM полягає в тому, що вона робить весь процес розробки швидким і
безпомилковим. По суті, це позбавляє від необхідності писати код SQL.
Django оснащено ORM, яка є однією з найкращих ORM, доступних
сьогодні в галузі. Вона тісно пов’язана із фреймворком Django і дуже
ефективна. ORM від Django найбільш відома своєю здатністю обробляти
запити середньої та низької складності та середні та великі набори даних.
Міграції — ще одна корисна функція Django ORM.
Абстракція є основною проблемою при роботі з даними, Django ORM
забезпечує рівень абстракції, з яким легко працювати. ORM автоматично
пов’яже атрибути об’єкта з відповідними полями таблиці. Зв'язки між полями
різних моделей в базі даних наступні:
 Один-до-одного (рис. 2.3) — кожному запису з однієї таблиці відповідає
один запис у іншій таблиці. Зв’язок один-до-одного створюється коли є
12

певні обмеження по первинному ключу або унікальності. Відношення


один-до-одного створюється у тому випадку, коли обидва поля є
ключовими або мають унікальні індекси.
 Один-до-багатьох (рис. 2.4) — одному запису з однієї таблиці відповідає
кілька записів у іншій таблиці. Але кожному рядку таблиці Б може
відповідати лише один рядок таблиці А. Відношення один-до-багатьох
створюється в тому випадку, коли тільки одне з полів є полем первинного
ключа або унікального індексу.
 Багато-до-багатьох (рис. 2.5) — безлічі записів з однієї таблиці відповідає
кілька записів в іншій таблиці. Відношення багато-до-багатьох фактично
є відносинами один-до-багатьох з першої таблиці з другою, з третьою
таблицею, первинний ключ якої складається з полів зовнішнього ключа
двох інших таблиць.

Рисунок 2.3 — Зв’язок один-до-одного

Рисунок 2.3 — Зв’язок один-до-багатьох

Рисунок 2.4 — Зв’язок багато-до-багатьох


13

2.3 API
Прикладний програмний інтерфейс (API) — набір визначень підпрограм,
протоколів взаємодії та засобів для створення програмного забезпечення.
Спрощено — це набір чітко визначених методів для взаємодії різних
компонентів. API надає розробнику засоби для швидкої розробки програмного
забезпечення. Він може бути для веббазованих систем, операційних систем, баз
даних, апаратного забезпечення, програмних бібліотек.
Django API — це набір інструментів і бібліотек, які дозволяють
розробникам створювати та використовувати RESTful API за допомогою веб-
фреймворку Django. RESTful API — це популярний спосіб створення веб-
сервісів, які можуть використовуватися різноманітними клієнтами, такими як
мобільні додатки чи інші веб-додатки.

Рисунок 2.5 — Застосування API

API Django містить кілька компонентів, які спрощують створення та


використання API у проектах Django. До них належать:
 Django REST framework (DRF) — це бібліотека третьої сторони, яка
надає набір потужних інструментів для створення RESTful API за
допомогою Django. Він включає підтримку серіалізації, автентифікації,
розбиття на сторінки та багато іншого.
 Перегляди та серіалізатори Django — це вбудовані компоненти Django,
які можна використовувати для створення API без необхідності
використання додаткових бібліотек. Представлення відповідають за
14

обробку вхідних HTTP-запитів, тоді як серіалізатори обробляють


перетворення об’єктів Python у та з JSON або інших форматів.
 Маршрутизатори Django. Маршрутизатори використовуються для
автоматичного створення шаблонів URL-адрес для кінцевих точок API на
основі переглядів і серіалізаторів, визначених у вашому проекті.
 Автентифікація та дозволи. API Django включає вбудовану підтримку
кількох типів автентифікації, наприклад автентифікація на основі
маркерів і OAuth2. Він також містить потужну систему дозволів, яку
можна використовувати для контролю доступу до кінцевих точок API на
основі ролей і дозволів користувачів.
Загалом, Django API надає повний набір інструментів для створення
надійних і безпечних RESTful API за допомогою Django. Незалежно від того,
створюєте ви невеликий проект чи масштабну корпоративну програму, Django
API може допомогти вам створити високоякісний API, який відповідає вашим
потребам.

Рисунок 2.6 — Проєктування API


15

2.4 Чи є Django гнучким?


Веб-фреймворки часто можна розділити на "гнучкі" та "негнучкі".
Негнучкі — це ті, які мають "правильний шлях" для вирішення будь-якої
конкретної задачі. Вони часто підтримують швидке розгортання в певній
області (вирішення проблем певного типу), тому що правильний спосіб зробити
щось зазвичай добре розуміється і добре документується. Однак вони можуть
бути менш гнучкими при вирішенні проблем за межами їх основної сфери і, як
правило, пропонують менше варіантів того, які компоненти та підходи можуть
використовувати.
На відміну від негнучких, гнучкі фреймворки мають набагато менше
обмежень на кращий спосіб склеювання компонентів для досягнення мети або
навіть того, які компоненти слід використовувати. Вони полегшують
розробникам використання найбільш придатних інструментів для виконання
конкретного завдання, хоч і за рахунок того, що вам потрібно самим знайти ці
компоненти.
Django «помірно гнучкий» і, отже, забезпечує «найкраще з обох світів».
Він надає набір компонентів для обробки більшості завдань веб-розробки та
один (або два) кращі способи їх використання. Однак така архітектура Django
означає, що ви зазвичай можете вибирати з різних опцій або при необхідності
додавати підтримку для абсолютно нових.
16

3 ЗАСТОСУВАННЯ

Ось деякі з багатьох типів проектів, які можна розробити за допомогою


фреймворку:
 фінансові платформи з функціями аналізу та розрахунку приблизних
результатів на основі персональних даних, толерантності до ризику,
ймовірності досягнення цілей;
 вбудовані користувацькі системи CRM для внутрішніх даних;
 B2B CRM системи для комунікації між підприємствами;
 платформи, які полегшують спілкування між двома сторонами,
наприклад бізнесом і споживачем;
 мобільні додатки для Android та iOS, які підтримують веб-додатки;
 системи оцінки нерухомості;
 системи документообігу;
 платформи для вирішення юридичних питань, як-от перевірка умов
іпотеки чи статусу оренди.
Django також можна використовувати для створення окремих функцій,
таких як:
 система електронної пошти для надсилання повідомлень користувачам;
 система фільтрації з розвиненою логікою та правилами, що динамічно
змінюються;
 генератори на основі алгоритмів;
 інструменти аналізу даних;
 інтерфейси для управління інвестиційними фондами;
 панелі адміністратора;
 системи перевірки на основі фотографій;
 а також інші функції, які полегшують розробку платформ CRM і B2B,
онлайн-ринків тощо.
17

Django є чудовим доповненням до проектів, які потребують обробки


великих обсягів вмісту (наприклад, медіафайлів), взаємодії з користувачем або
інтенсивного трафіку, або мають справу зі складними функціями чи
технологіями (наприклад, машинне навчання). Проте це досить просто для
проектів меншого масштабу або якщо ви маєте намір масштабувати свій проект
до набагато вищого рівня. Ось чому Django використовують так багато
компаній, що відрізняються за розміром і цілями.
18

ВИСНОВОК

Django - це потужний веб-фреймворк, який дозволяє швидко і легко


створювати високоякісні веб-додатки. Його багаті можливості та зручний
інтерфейс дозволяють програмістам зосередитися на розробці бізнес-логіки,
замість того, щоб витрачати час на рутинну роботу з налаштуванням сервера і
багатьма іншими деталями.
Django має чудову документацію, яка допомагає новим користувачам
швидко зрозуміти основні принципи роботи з фреймворком. Крім того,
фреймворк має велику спільноту розробників, яка створює безліч додаткових
бібліотек та інструментів для покращення розробки з Django.
Найбільшою перевагою Django є його гнучкість та можливість
розширення. Фреймворк можна використовувати для будь-якого розміру
проекту, від невеликих веб-сайтів до складних веб-додатків. Завдяки багатьом
розширенням та бібліотекам, які є доступними для Django, розробники можуть
розширювати функціональність своїх проектів без зайвих зусиль.
У загальному, Django - це дуже потужний та зручний фреймворк для
розробки веб-додатків, який надає широкі можливості та спрощує процес
розробки. Його велика спільнота розробників та добре документовані
можливості роблять Django одним з найкращих виборів для розробки веб-
додатків будь-якої складності.
19

ПЕРЕЛІК ВИКОРИСТАНИХ ДЖЕРЕЛ


1. Django Вікіпедія. Електронний ресурс. Режим доступу:
https://uk.wikipedia.org/wiki/Django#%D0%9A%D0%BE%D0%BD
%D1%84%D1%96%D0%B3%D1%83%D1%80%D0%B0%D1%86%D1%96
%D1%8F_
%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0
2. ORM Вікіпедія. Електронний ресурс. Режим доступу:
https://uk.wikipedia.org/wiki/%D0%9E%D0%B1%27%D1%94%D0%BA
%D1%82%D0%BD%D0%BE-%D1%80%D0%B5%D0%BB%D1%8F
%D1%86%D1%96%D0%B9%D0%BD%D0%B5_
%D0%B2%D1%96%D0%B4%D0%BE
%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%BD
%D1%8F
3. API Вікіпедія. Електронний ресурс. Режим доступу:
https://uk.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%BA
%D0%BB%D0%B0%D0%B4%D0%BD%D0%B8%D0%B9_%D0%BF
%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BD
%D0%B8%D0%B9_%D1%96%D0%BD
%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81
4. Django вступ. Електронний ресурс. Режим доступу:
https://developer.mozilla.org/ru/docs/Learn/Server-side/Django/Introduction
5. Що таке веб додаток? Електронний ресурс. Режим
доступу:https://webcase.com.ua/uk/blog/cho-takoe-web-prilozhenie-vse-
vidy/#f1
6. What is MVT structure in Django? Електронний ресурс. Режим доступу:
https://www.educative.io/answers/what-is-mvt-structure-in-django
7. What is django ORM? Електронний ресурс. Режим доступу:
https://www.tutorialspoint.com/what-is-django-
20

orm#:~:text=djangoProgrammingServer%20Side%20Programming,the
%20database%20and%20a%20model.
8. How To Hash Passwords In Python. Електронний ресурс. Режим доступу:
https://www.geeksforgeeks.org/how-to-hash-passwords-in-python/
9. Типи зв’язків у БД. Електронний ресурс. Режим доступу:
https://qagroup.com.ua/publications/sql-info/
10. Why We Use Django Framework & What Is Django Used For. Електронний
ресурс. Режим доступу: https://djangostars.com/blog/why-we-use-django-
framework/

You might also like