factograf
BE
Sign in

Django

Django

Key facts

дата заснавання / стварэння2004
дата публікацыі13 ліпеня 2005 г.
гэтаВэб-фрэймворк
All data from the card 11
Тып
Вэб-фрэймворк
Аўтар
Lawrence Journal-World[d]
Распрацоўшчык
Django Software Foundation[d]
Напісана на
Python
Інтэрфейс
вэб-інтэрфейс[d]
Аперацыйная сістэма
кросплатформавасць
Першы выпуск
2004
Апошняя версія
6.1.2 (6 кастрычніка 2026)
Рэпазіторый
github.com/django/django
Ліцэнзія
мадыфікаваная ліцэнзія BSD[d]
Сайт
djangoproject.com (англ.)

Django (бел.: Джа́нга) — свабодны фрэймворк для вэб-праграм на мове Python, які выкарыстоўвае шаблон праектавання MVC. Праект падтрымліваецца арганізацыяй Django Software Foundation.

Старонка на Django будуецца з аднай або некалькіх праграм. Адзін з асноўных прынцыпаў фрэймворка - DRY (англ.: Don't repeat yourself).

Таксама, у адрозненні ад іншых фрэймворкаў, апрацоўшчыкі URL у Django канфігуруюцца яўна пры дапамозе рэгулярных выразаў.

Для працы з базай даных Django выкарыстоўвае ўласную ORM, у якой мадэль даных апісваецца класамі Python, і па ёй ужо генеруецца схема базы даных.

Выкарыстанне

Вэб-фрэймворк Django выкарыстоўваецца на старонках Instagram, Disqus, Mozilla, The Washington Times, Pinterest, YouTube, Google і інш.

Таксама Django выкарыстоўваецца ў якасці вэб-кампанента ў праектах:

  • Graphite — сістэма пабудовы графікаў і назірання
  • FreeNAS — свабодная рэалізацыя сістэмы захоўвання і абмену файламі і інш.

Распрацоўшчыкі

  • Расэл Кейт-Магі (англ.: Russell Keith-Magee)
  • Адрыян Галаваты (англ.: Adrian Holovaty)
  • Сайман Вілісан (англ.: Simon Willison)
  • Джэйкаб Каплан-Мос (англ.: Jacob Kaplan-Moss)
  • Уілсан Майнер (англ.: Wilson Miner)

Распрацоўшчыкі заяўляюць, што не абавязваюцца строга прытрымлівацца ніякай метадалогіі ў развіцці праекта, аддаючы перавагу таму, што здаецца ім найболей лагічным.

Магчымасці

Джанга Рэйнхардт — музыка, у гонар якога фрэймворк атрымаў сваю назву
Джанга Рэйнхардт — музыка, у гонар якога фрэймворк атрымаў сваю назву

Некаторыя магчымасці Django:

  • ORM, API доступ да БД з падтрымкай транзакцый
  • убудаваны інтэрфейс адміністратара, з ужо наяўнымі перакладамі на многія мовы
  • дыспетчар URL на аснове рэгулярных выразаў
  • пашыральная сістэма шаблонаў з тэгамі і наследаваннем
  • сістэма кэшавання
  • інтэрнацыяналізацыя
  • падключальная архітэктура праграм, якія можна ўсталёўваць на любыя Django-старонкі
  • «Generic views» - шаблоны функцый кантролераў
  • аўтарызацыя і аўтэнтыфікацыя, падключэнне знешніх модуляў аўтэнтыфікацыі: LDAP, OpenID і інш.
  • сістэма фільтраў («middleware») для пабудовы дадатковых апрацоўшчыкаў запытаў, як напрыклад уключаныя ў дыстрыбутыў фільтры для кэшавання, сціску, нармалізацыі URL і падтрымкі ананімных сесій
  • бібліятэка для працы з формамі (наследаванне, пабудова форм па існуючай мадэлі БД)
  • убудаваная аўтаматычная дакументацыя па тэгах шаблонаў і мадэлях даных, даступная праз адміністрацыйную праграму

Некаторыя кампаненты фрэймворка паміж сабой злучаны слаба, таму іх можна досыць проста замяняць на аналагічныя. Напрыклад, замест убудаваных шаблонаў можна выкарыстоўваць Mako ці Jinja.

У той жа час замяняць шэраг кампанентаў (напрыклад, ORM) даволі складана.

Акрамя магчымасцяў убудаваных у ядро фреймворка, існуюць пакеты, якія пашыраюць яго магчымасці. Магчымасці, якія прадстаўляюцца пакетамі, а таксама поўны пералік пакетаў зручна адсочваць праз спецыяльны рэсурс - www.djangopackages.com.

Версіі і храналогія іх выхаду

Некаторыя выпускі Django атрымліваюць статус "рэлізу з доўгатэрміновай падтрымкай" (LTS). Яны атрымліваюць абнаўленні бяспецы і абароны ад страт даных на гарантаваны перыяд часу, звычайна ад трох гадоў.

Рашэнні

На базе Django распрацаваны шэраг гатовых рашэнняў са свабоднай ліцэнзіяй, сярод якіх інтэрнэт-крамы, сістэмы кіравання змесцівам, а таксама больш вузканакіраваныя праекты.

Канфігурацыя сервера

Django праектаваўся для працы пад кіраваннем Apache з модулем mod python і з выкарыстаннем PostgreSQL у якасці базы даных.

З уключэннем падтрымкі WSGI, Django можа працаваць пад кіраваннем FastCGI, mod wsgi або SCGI на Apache і іншых серверах.

Зараз акрамя базы даных PostgreSQL, Django можа працаваць з іншымі СКБД: MySQL, SQLite, Microsoft SQL Server, DB2, Firebird, SQL Anywhere і Oracle.

У складзе Django прысутнічае ўласны вэб-сервер для распрацоўкі. Сервер аўтаматычна вызначае змены ў файлах зыходнага кода праектп і перазапускаецца, што паскарае працэс распрацоўкі на Python. Але пры гэтым ён працуе ў аднапаточным рэжыме і прыдатны толькі для працэсу распрацоўкі і адладкі праграмы.

Хостынг для Django

Django можна разгарнуць на PaaS-сэрвісах RedHat:

  • OpenShift, у тым ліку і бясплатна
  • Heroku
  • На хостынгу PythonAnywhere.

Django на хостынгу Google

Google App Engine Python дазваляе выкарыстоўваць для працы любую версію Django.

Існуюць некаторыя асаблівасці пры працы з Django у Google App Engine Python 2.7.

  • Django ORM несумяшчальна са сховішчам App Engine Datastore, якое ўяўляе сабой NoSQL сховішча. Гэта ў сваю чаргу робіць абмежаванай працу пэўных функцый фрэймворка, у прыватнасці, убудаванага адміністрацыйнага інтэрфейсу.
  • Таксама з Django можна працаваць праз Google cloud-sql. Гэта дазваляе выкарыстоўваць усе магчымасці фрэймворка, як і пры працы са звычайнымі рэляцыйнымі базамі.

Існуе community-версія Django-nonrel, адаптаваная для працы з нерэляцыйнымі сховішчамі даных, якая дазваляе паўнавартасна (наколькі гэта магчыма тэхнічна) выкарыстоўваць Django на платформе Google App Engine. А падключальная праграма django-dbindexer дазваляе нават эмуляваць JOIN у нерэляцыйных сховішчах даных.

Read next

In 41 languages

Text from Wikipedia, CC BY-SA 4.0 · Source article