Django
Django (бел.: Джа́нга) — свабодны фрэймворк для вэб-праграм на мове Python, які выкарыстоўвае шаблон праектавання MVC[6]. Праект падтрымліваецца арганізацыяй Django Software Foundation.
Django | |
---|---|
Тып | Вэб-фрэймворк |
Аўтар | Lawrence Journal-World[d][1] |
Распрацоўшчык | Django Software Foundation[d] |
Напісана на | Python[3] |
Інтэрфейс | вэб-інтэрфейс[d] |
Аперацыйная сістэма | кросплатформавае праграмнае забеспячэнне |
Першы выпуск | 2004[1] |
Апошняя версія |
|
Ліцэнзія | мадыфікаваная ліцэнзія BSD[d][4][5] |
Сайт | djangoproject.com (англ.) |
Медыяфайлы на Вікісховішчы |
Старонка на Django будуецца з аднай або некалькіх праграм. Адзін з асноўных прынцыпаў фрэймворка - DRY (англ.: Don't repeat yourself).
Таксама, у адрозненні ад іншых фрэймворкаў, апрацоўшчыкі URL у Django канфігуруюцца яўна пры дапамозе рэгулярных выразаў.
Для працы з базай даных Django выкарыстоўвае ўласную ORM, у якой мадэль даных апісваецца класамі Python, і па ёй ужо генеруецца схема базы даных[7].
Выкарыстанне
правіцьВэб-фрэймворк Django выкарыстоўваецца на старонках Instagram [8], Disqus[9], Mozilla[10], The Washington Times, Pinterest, YouTube, Google і інш.
Таксама Django выкарыстоўваецца ў якасці вэб-кампанента ў праектах:
- Graphite [11] — сістэма пабудовы графікаў і назірання
- FreeNAS — свабодная рэалізацыя сістэмы захоўвання і абмену файламі і інш.
Распрацоўшчыкі
правіць- Расэл Кейт-Магі (англ.: Russell Keith-Magee)
- Адрыян Галаваты (англ.: Adrian Holovaty)
- Сайман Вілісан (англ.: Simon Willison)
- Джэйкаб Каплан-Мос (англ.: Jacob Kaplan-Moss)
- Уілсан Майнер (англ.: Wilson Miner)
Распрацоўшчыкі заяўляюць, што не абавязваюцца строга прытрымлівацца ніякай метадалогіі ў развіцці праекта, аддаючы перавагу таму, што здаецца ім найболей лагічным[12].
Магчымасці
правіцьНекаторыя магчымасці Django:
- ORM, API доступ да БД з падтрымкай транзакцый[13]
- убудаваны інтэрфейс адміністратара[14], з ужо наяўнымі перакладамі на многія мовы
- дыспетчар URL на аснове рэгулярных выразаў[15]
- пашыральная сістэма шаблонаў з тэгамі і наследаваннем[16]
- сістэма кэшавання[17]
- інтэрнацыяналізацыя[18]
- падключальная архітэктура праграм, якія можна ўсталёўваць на любыя Django-старонкі
- «Generic views» - шаблоны функцый кантролераў
- аўтарызацыя і аўтэнтыфікацыя, падключэнне знешніх модуляў аўтэнтыфікацыі: LDAP, OpenID і інш.
- сістэма фільтраў («middleware») для пабудовы дадатковых апрацоўшчыкаў запытаў, як напрыклад уключаныя ў дыстрыбутыў фільтры для кэшавання, сціску, нармалізацыі URL і падтрымкі ананімных сесій
- бібліятэка для працы з формамі (наследаванне, пабудова форм па існуючай мадэлі БД) [19]
- убудаваная аўтаматычная дакументацыя па тэгах шаблонаў і мадэлях даных, даступная праз адміністрацыйную праграму
Некаторыя кампаненты фрэймворка паміж сабой злучаны слаба, таму іх можна досыць проста замяняць на аналагічныя. Напрыклад, замест убудаваных шаблонаў можна выкарыстоўваць Mako ці Jinja .
У той жа час замяняць шэраг кампанентаў (напрыклад, ORM) даволі складана.
Акрамя магчымасцяў убудаваных у ядро фреймворка, існуюць пакеты, якія пашыраюць яго магчымасці. Магчымасці, якія прадстаўляюцца пакетамі, а таксама поўны пералік пакетаў зручна адсочваць праз спецыяльны рэсурс - www.djangopackages.com .
Версіі і храналогія іх выхаду
правіцьНекаторыя выпускі Django атрымліваюць статус "рэлізу з доўгатэрміновай падтрымкай" (LTS)[20]. Яны атрымліваюць абнаўленні бяспецы і абароны ад страт даных на гарантаваны перыяд часу, звычайна ад трох гадоў.
Рашэнні
правіцьНа базе Django распрацаваны шэраг гатовых рашэнняў са свабоднай ліцэнзіяй[21], сярод якіх інтэрнэт-крамы, сістэмы кіравання змесцівам, а таксама больш вузканакіраваныя праекты.
Канфігурацыя сервера
правіць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:
Django на хостынгу Google
правіцьGoogle App Engine Python[28] дазваляе выкарыстоўваць для працы любую версію Django.
Існуюць некаторыя асаблівасці пры працы з Django у Google App Engine Python 2.7.
- Django ORM несумяшчальна са сховішчам App Engine Datastore, якое ўяўляе сабой NoSQL сховішча. Гэта ў сваю чаргу робіць абмежаванай працу пэўных функцый фрэймворка, у прыватнасці, убудаванага адміністрацыйнага інтэрфейсу[29].
- Таксама з Django можна працаваць праз Google cloud-sql[30]. Гэта дазваляе выкарыстоўваць усе магчымасці фрэймворка, як і пры працы са звычайнымі рэляцыйнымі базамі[31].
Існуе community-версія Django-nonrel[32], адаптаваная для працы з нерэляцыйнымі сховішчамі даных, якая дазваляе паўнавартасна (наколькі гэта магчыма тэхнічна) выкарыстоўваць Django на платформе Google App Engine. А падключальная праграма django-dbindexer[33] дазваляе нават эмуляваць JOIN у нерэляцыйных сховішчах даных.
Зноскі
- ↑ а б http://www.djangobook.com/en/2.0/chapter01.html#django-s-history
- ↑ Release 5.1.3 — 2024. Праверана 13 лістапада 2024.
- ↑ The django Open Source Project on Open Hub: Languages Page — 2006. Праверана 18 ліпеня 2018.
- ↑ https://github.com/django/django/blob/master/LICENSE Праверана 2 верасня 2016.
- ↑ The django Open Source Project on Open Hub: Licenses Page — 2006. Праверана 18 ліпеня 2018.
- ↑ Django FAQ about MVC in Django . Архівавана з першакрыніцы 10 верасня 2017. Праверана 14 мая 2009.
- ↑ Маниакальный Веблог (Блог Ивана Сагалаева) . Архівавана з першакрыніцы 30 кастрычніка 2020. Праверана 27 жніўня 2020.
- ↑ What Powers Instagram: Hundreds of Instances, Dozens of Technologies - Instagram Engineering . Архівавана з першакрыніцы 20 студзеня 2013. Праверана 6 студзеня 2013.
- ↑ Welcome, David Cramer | Disqus: The Official Blog . Архівавана з першакрыніцы 20 студзеня 2013. Праверана 6 студзеня 2013.
- ↑ The MDN platform (Kuma) | MDN(недаступная спасылка). Архівавана з першакрыніцы 27 студзеня 2013. Праверана 6 студзеня 2013.
- ↑ Working on Graphite-web . Архівавана з першакрыніцы 9 верасня 2020. Праверана 27 жніўня 2020.
- ↑ Django FAQ . Архівавана з першакрыніцы 10 верасня 2017. Праверана 14 мая 2009.
- ↑ DjangoBook. Глава 5. Работа с базой данных: Модели . Архівавана з першакрыніцы 30 верасня 2020. Праверана 27 жніўня 2020.
- ↑ DjangoBook. Глава 6. Интерфейс администратора Django . Архівавана з першакрыніцы 26 верасня 2020. Праверана 27 жніўня 2020.
- ↑ DjangoBook. Глава 3. Основы динамических страниц . Архівавана з першакрыніцы 22 кастрычніка 2020. Праверана 27 жніўня 2020.
- ↑ DjangoBook. Глава 10. Расширения для шаблонной системы . Архівавана з першакрыніцы 30 верасня 2020. Праверана 27 жніўня 2020.
- ↑ DjangoBook. Глава 13. Кэширование . Архівавана з першакрыніцы 26 верасня 2020. Праверана 27 жніўня 2020.
- ↑ DjangoBook. Глава 18. Интернационализация . Архівавана з першакрыніцы 30 верасня 2020. Праверана 27 жніўня 2020.
- ↑ Djangodoc.ru. Использование форм . Архівавана з першакрыніцы 7 кастрычніка 2020. Праверана 5 кастрычніка 2020.
- ↑ Django’s release process | Django documentation | Django (англ.). www.djangoproject.com. Архівавана з першакрыніцы 9 кастрычніка 2021. Праверана 4 верасня 2021.
- ↑ Open-Source Django projects . Архівавана з першакрыніцы 2 ліпеня 2020. Праверана 27 жніўня 2020.
- ↑ Pricing | OpenShift by Red Hat . Архівавана з першакрыніцы 23 студзеня 2013. Праверана 6 студзеня 2013.
- ↑ Rapid Python and Django App Deployment to the Cloud with a PaaS
- ↑ openshift / openshift-diy-py27-django(недаступная спасылка). на github
- ↑ openshift / django-example . Архівавана з першакрыніцы 4 жніўня 2014. на github
- ↑ Getting Started on Heroku with Python . Архівавана з першакрыніцы 10 мая 2018. Праверана 10 мая 2018.
- ↑ Deploying an existing Django project on PythonAnywhere . Архівавана з першакрыніцы 26 красавіка 2017. Праверана 25 красавіка 2017.
- ↑ Google App Engine Python . Архівавана з першакрыніцы 20 студзеня 2013. Праверана 4 студзеня 2013.
- ↑ Third-party Libraries in Python 2.7 - Google App Engine — Google Developers . Архівавана з першакрыніцы 16 студзеня 2013. Праверана 6 студзеня 2013.
- ↑ Google cloud-sql . Архівавана з першакрыніцы 15 студзеня 2013. Праверана 4 студзеня 2013.
- ↑ Django Support - Google App Engine — Google Developers . Архівавана з першакрыніцы 11 жніўня 2014. Праверана 6 студзеня 2013.
- ↑ Django-nonrel(недаступная спасылка).
- ↑ django-dbindexer(недаступная спасылка). Архівавана з першакрыніцы 9 ліпеня 2020. Праверана 27 жніўня 2020.