Loading AI tools
З Вікіпедії, вільної енциклопедії
Django (укр. Джанго) — високорівневий відкритий Python-фреймворк (програмний каркас) для розробки вебсистем. Названо його було на честь джазмена Джанго Рейнхардта (відповідно до музичних смаків одного зі засновників проєкту).
Тип | веб-фреймворк[1] |
---|---|
Автор | Lawrence Journal-Worldd[2] |
Розробник | Django Software Foundationd |
Стабільний випуск | 3.1.6 (1 лютого 2021 ) |
Операційна система | кросплатформова програма |
GNU фреймворк | Веб-інтерфейс |
Мова програмування | Python[3] |
Доступні мови | українська та ще 66 мов |
Ліцензія | модифікована ліцензія BSDd[4][5] |
Репозиторій | github.com/django/django |
Вебсайт | djangoproject.com |
Сайт на Django будується з однієї або декількох частин, які рекомендується робити модульними. Це одна з істотних архітектурних відмінностей цього фреймворку від деяких інших (наприклад Ruby on Rails).
Архітектура Django подібна на «Модель-Вигляд-Контролер» (MVC). Однак, те що називається «контролером» в класичній моделі MVC, в Django називається «вигляд» (англ. view), а те, що мало б бути «виглядом», називається «шаблон» (англ. template). Таким чином, MVC розробники Django називають MTV («Модель-Шаблон-Вигляд»).
Початкова розробка Django, як засобу для роботи новинних ресурсів, досить сильно позначилася на його архітектурі: він надає ряд засобів, які допомагають у швидкій розробці вебсайтів інформаційного характеру. Так, наприклад, розробнику не потрібно створювати контролери та сторінки для адміністративної частини сайту, в Django є вбудований модуль для керування вмістом, який можна включити в будь-який сайт, зроблений на Django, і який може керувати відразу декількома сайтами на одному сервері. Адміністративний модуль дозволяє створювати, змінювати і вилучати будь-які об'єкти наповнення сайту, протоколюючі всі дії, а також надає інтерфейс для управління користувачами і групами (з призначенням прав).
У дистрибутив Django також включені програми для системи коментарів, синдикації RSS і Atom, «статичних сторінок»(якими можна управляти без необхідності писати контролери та відображення), перенаправлення URL та інше.
Django був створений для управління сайтами новин LJWorld.com [Архівовано 1 грудня 2008 у Wayback Machine.], lawrence.com [Архівовано 16 грудня 2008 у Wayback Machine.] і KUsports.com [Архівовано 2 грудня 2008 у Wayback Machine.] компанії The World Company (Лоренс (Канзас), США), але з моменту початку розповсюдження його у статусі відкритого програмного забезпечення отримав величезну популярність в усьому світі як платформа до численних систем.
Розробники — засновники проєкту:
Деякі можливості Django:
Різні компоненти фреймворку між собою пов'язані слабо, тому достатньо будь-яку частину замінити на аналогічну. Наприклад, замість вбудованих шаблонів можна використовувати Mako [Архівовано 11 квітня 2022 у Wayback Machine.] або Jinja.
Django підтримує парадигму ООП. Об'єкти БД в термінології Django іменуються «моделями». Фреймворк надає у розпорядження розробникові розвинутий прикладний програмний інтерфейс для високорівневого доступу до даних. В більшості випадків немає потреби писати SQL-запити (однак, ніхто не забороняє це робити).
Для прикладу, для проєкту обліку учнів можна створити таку модель:
class Student(models.Model): name = models.CharField("Ім'я", max_length="100") surname = models.CharField("Прізвище", max_length="100") birth_date = models.DateField()
При виконанні синхронізації проєкту з БД автоматично буде створена таблиця БД з полями, які відповідають полям (properties) моделі.
Вибірка всіх студентів:
students = Student.objects.all()
Вибірка з фільтром по прізвищу, по частині прізвища, по даті народження:
students = Student.objects.filter(surname="Іванов") students = Student.objects.filter(surname__iexact="нов") # LIKE-фільтр students = Student.objects.filter(birth_date__gte=datetime.date('1982', '4', '5')) #старші за дану дату
Django автоматично створить для вас CRUD-інтерфейс ('адмінку').
Парсинг URL-ів побудований на регулярних виразах. Розробник не обмежений у використанні певної схеми посилань.
В Django є окрема мова для опису шаблонів. Вона є дуже простою і «дружньою» для непрограмістів. В ній присутні оператори циклу, умови, форматування даних. З практики: верстальщика можна навчити редагувати Django-шаблони за 2-3 заняття.
Мова шаблонів виконує функцію відображення даних. Змінити дані в БД її операторами неможливо.
Django-проєкт може бути налаштований на роботу з Memcached чи будь-яким іншим фреймворком за лічені хвилини. Інструменти Django дозволяють кешувати SQL-вибірки, шаблони та їх частини і просто окремі змінні.
Переклад Django-проєкту не є проблемою. Інтернаціоналізація базується на концепції «лінивого» перекладу. Це зокрема означає, що якщо певний рядок тексту не має перекладу, то буде використано базовий текст і не буде показано повідомлення про помилку. Проте ніхто не забороняє використовувати функції, які будуть контролювати наявність перекладу рядкових даних.
Для перекладу тексту всередині програмного коду використовується функція ugettext, яка часто імпортується як «_»
from django.utils.translation import ugettext as _
Її можна однаково вільно використовувати в тілі процедур і в полях класів.
class Item(models.Model): category = models.ForeignKey(Category, verbose_name=_("Category"))
...
def do_something(): print _("Hello!") t = "Variable string" print _(t)
Для перекладу тексту всередині шаблонів використовується бібліотека шаблонних тегів i18n.
{% load i18n %} ...
Django проєктувався для роботи під управлінням вебсервера Apache з модулем mod python і використанням PostgreSQL як бази даних.
На даний час Django також підтримує FastCGI, mod wsgi або SCGI. Вебсервером може бути Apache, lighttpd, nginx, CherryPy. Підтримувані системи баз даних — MySQL, SQLite, PostgreSQL і Oracle[13].
У складі Django присутній власний вебсервер для розробки і налагоджування. Сервер автоматично відслідковує зміни у файлах сирцевого коду і перезапускається, що зручно при розробці проєкту.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.