Основная цель Django — облегчить создание сложных веб-сайтов, управляемых базами данных. Фреймворк подчеркивает возможность повторного использования и «подключаемости» компонентов, меньшее количество кода, низкую связанность, быструю разработку и принцип « не повторяйся» . [9] Python используется повсюду, даже для настроек, файлов и моделей данных . Django также предоставляет дополнительный административный интерфейс создания, чтения, обновления и удаления, который генерируется динамически посредством самоанализа и настраивается с помощью моделей администрирования.
Django был создан осенью 2003 года, когда веб -программисты газеты Lawrence Journal-World Адриан Головатый и Саймон Уиллисон начали использовать Python для создания приложений. Джейкоб Каплан-Мосс был нанят на раннем этапе разработки Django, незадолго до окончания стажировки Саймона Уиллисона. [16] Он был выпущен публично под лицензией BSD в июле 2005 года. Фреймворк был назван в честь гитариста Джанго Рейнхардта . [17] Адриан Головатый — цыганский джазовый гитарист, частично вдохновленный музыкой Рейнхардта. [18]
В июне 2008 года было объявлено, что недавно созданный Django Software Foundation (DSF) будет поддерживать Django в будущем. [19]
Функции
Компоненты
Снимок экрана интерфейса администратора Django для изменения учетной записи пользователя.
легкий и автономный веб-сервер для разработки и тестирования
система сериализации и проверки форм , которая может преобразовывать формы HTML и значения, подходящие для хранения в базе данных.
система шаблонов, использующая концепцию наследования , заимствованную из объектно-ориентированного программирования.
платформа кэширования , которая может использовать любой из нескольких методов кэширования
поддержка классов промежуточного программного обеспечения , которые могут вмешиваться на различных этапах обработки запросов и выполнять пользовательские функции
внутренняя диспетчерская система, которая позволяет компонентам приложения передавать события друг другу через заранее определенные сигналы.
система интернационализации , включая переводы собственных компонентов Django на различные языки.
система сериализации , которая может создавать и читать XML- и/или JSON -представления экземпляров модели Django.
Система конфигурации Django позволяет подключать сторонний код к обычному проекту при условии, что он соответствует соглашениям о повторном использовании приложений [22] . Доступно более 5000 пакетов [23] для расширения исходного поведения платформы, предоставляя решения проблем, которые исходный инструмент не решал: регистрация, поиск, предоставление и использование API , CMS и т. д.
Однако эта расширяемость смягчается зависимостями внутренних компонентов. Хотя философия Django предполагает слабую связь, [24] фильтры и теги шаблонов предполагают одну реализацию механизма, а приложения, связанные с аутентификацией и администрированием, требуют использования внутреннего ORM . Ни один из этих фильтров или встроенных приложений не является обязательным для запуска проекта Django, но многоразовые приложения, как правило, зависят от них, что побуждает разработчиков продолжать использовать официальный стек, чтобы в полной мере извлечь выгоду из экосистемы приложений.
Расположение серверов
Django можно запускать совместно с Apache , Nginx с использованием WSGI , Gunicorn или Cherokee с использованием flup (модуля Python). [25] [26] Django также включает возможность запуска сервера FastCGI , что позволяет использовать его за любым веб-сервером, поддерживающим FastCGI, например Lighttpd или Hiawatha . Также можно использовать другие веб-серверы, совместимые с WSGI . [27] Django официально поддерживает пять баз данных: PostgreSQL , MySQL , MariaDB , SQLite и Oracle . [28] Microsoft SQL Server можно использовать с django-mssql, в то время как аналогичные внешние серверные части существуют для IBM Db2 , [29] SQL Anywhere [30] и Firebird . [31] Существует форк под названием django-nonrel, который поддерживает базы данных NoSQL , такие как MongoDB и хранилище данных Google App Engine . [32]
Django также можно запускать вместе с Python на любом сервере приложений Java EE , например GlassFish или JBoss . В этом случае необходимо установить django-jython, чтобы предоставить драйверы JDBC для подключения к базе данных, которые также могут обеспечить функциональность для компиляции Django в .war, подходящий для развертывания. [33]
История версий
Команда Django иногда назначает определенные выпуски выпусками с «долгосрочной поддержкой» (LTS). [34] В версиях LTS будут исправлены проблемы безопасности и потери данных, применяемые в течение гарантированного периода времени, обычно более 3 лет, независимо от темпов последующих выпусков.
ДжангоКон
С сентября 2008 года проводится полугодовая конференция для разработчиков и пользователей Django под названием «DjangoCon». DjangoCon проводится ежегодно в Европе, в мае или июне; [62] а другой проводится в США в августе или сентябре в различных городах. [63] DjangoCon 2012 проходил в Вашингтоне, округ Колумбия, с 3 по 8 сентября. DjangoCon 2013 проходил в Чикаго в отеле Hyatt Regency, а спринты после конференции проводились в Digital Bootcamp, центре компьютерного обучения. [64] DjangoCon US 2014 вернулся в Портленд , штат Орегон, с 30 августа по 6 сентября. DjangoCon US 2015 проходил в Остине , штат Техас, с 6 по 11 сентября в Executive Center AT&T. DjangoCon US 2016 проходил в Филадельфии, штат Пенсильвания, в Уортонской школе Пенсильванского университета с 17 по 22 июля. [65] DjangoCon US 2017 проходил в Спокане, штат Вашингтон; [66] В 2018 году DjangoCon US проводился в Сан-Диего, Калифорния. [67] DjangoCon US 2019 снова прошла в Сан-Диего, Калифорния, с 22 по 27 сентября. DjangoCon 2021 прошел виртуально, а в 2022 году DjangoCon US вернулся в Сан-Диего с 16 по 21 октября.
Мини-конференции Django обычно проводятся каждый год в рамках Австралийской конференции Python «PyCon AU». [68] Ранее подобные мини-конференции проводились в:
Django породил группы пользователей и встречи по всему миру, наиболее заметной группой является организация Django Girls , которая возникла в Польше, но теперь проводит мероприятия в 91 стране. [69] [70] [71]
Порты на другие языки
Программисты перенесли дизайн механизма шаблонов Django с Python на другие языки, обеспечив достойную кроссплатформенную поддержку. Некоторые из этих вариантов являются более прямыми портами; другие, хотя и вдохновлены Django и сохраняют его концепции, позволяют себе отклоняться от дизайна Django:
Django как фреймворк способен создать полноценную CMS , однако существуют специальные проекты CMS, которые основаны на фреймворке Django и расширяют его. Ниже приведен список некоторых наиболее популярных CMS на базе Django:
^ abc "django/README". Гитхаб . Проверено 8 сентября 2020 г.
^ «Часто задаваемые вопросы по Джанго» . Проверено 27 марта 2019 г.
^ «Выпуск 5.0.1». 2 января 2024 г. Проверено 19 января 2024 г.
^ "Загрузка Джанго" . Проверено 7 августа 2020 г.
^ "Джанго/ЛИЦЕНЗИЯ". Гитхаб . Проверено 8 сентября 2020 г.
^ «Часто задаваемые вопросы: Общие сведения — Документация Django — Django» . Проверено 30 апреля 2016 г.
^ ab «Часто задаваемые вопросы: Общие сведения — Документация Django — Django» . Проверено 30 апреля 2016 г.
^ аб Адриан Головатый, Джейкоб Каплан-Мосс; и другие. Книга Джанго. Архивировано из оригинала 2 сентября 2016 года . Проверено 3 сентября 2013 г. Django достаточно точно следует этому шаблону MVC, поэтому его можно назвать фреймворком MVC.
^ «Философия дизайна». Джанго . Проверено 18 марта 2018 г.
^ «Что движет Instagram: сотни случаев, десятки технологий» . Инстаграм Инжиниринг .
^ «Питон». Сеть разработчиков Mozilla . Архивировано из оригинала 8 февраля 2012 года . Проверено 30 апреля 2016 г.
^ "DjangoSuccessStoryBitbucket - Джанго" . Архивировано из оригинала 20 апреля 2016 года . Проверено 30 апреля 2016 г.
^ «Анти-Facebook: каждый четвертый американский район теперь использует эту частную социальную сеть» . Грань . 18 августа 2014 года . Проверено 16 июня 2016 г.
↑ Деми, Люк (15 августа 2021 г.). «Обуздать громоподобное стадо ⛈ Достичь 80% загрузки ЦП с помощью Django». Блог Клубного дома . Проверено 16 августа 2021 г.
^ Уиллисон, Саймон . «Какова история веб-фреймворка Django? Почему его называют «разработанным в редакции»?». Кура . Проверено 18 октября 2019 г.
^ «Представляем Джанго». Книга Джанго. Архивировано из оригинала 29 июля 2018 года . Проверено 29 июля 2018 г.
^ «Обзор: Игривая и точная« Мелодичная гитарная музыка »Адриана Головатого» . Акустическая гитара . Архивировано из оригинала 30 декабря 2023 года.
^ «Объявление о создании Django Software Foundation — Блог — Django» . Проверено 30 апреля 2016 г.
^ «Безопасность в Джанго». Проект Джанго . Проверено 25 марта 2013 г.
^ Сокол, Джеймс (2012). «Лучшие базовые методы обеспечения безопасности (особенно с Django)» . Проверено 25 марта 2013 г.
^ «Что такое повторно используемое приложение? — документация django-reusable-app-docs 0.1.0» . Проверено 30 апреля 2016 г.
^ «Список пакетов API пакетов Django» . Проверено 17 апреля 2023 г.
^ «Философия дизайна - Документация Django - Django» . Архивировано из оригинала 4 марта 2016 года . Проверено 30 апреля 2016 г.
^ «Документация по развертыванию Django» . Архивировано из оригинала 11 января 2012 года.
^ «Веб-сервер Cherokee — Поваренная книга по настройке Django — Документация Cherokee» . Проверено 30 апреля 2016 г.
^ Как использовать Django с Apache и mod_wsgi. Архивировано 8 марта 2013 г. на Wayback Machine . Официальная документация Django.
^ "Документация Джанго" . Документация Джанго . Проверено 9 июня 2023 г.
^ IBMDB. «GitHub — ibmdb/python-ibmdb: автоматически экспортируется из code.google.com/p/ibm-db». Гитхаб . Проверено 30 апреля 2016 г.
^ «Архив кода Google — долгосрочное хранилище для хостинга проектов Google Code» . Проверено 30 апреля 2016 г.
^ максиробаина. «GitHub — maxirobaina/django-firebird: SQL-сервер Firebird для django». Гитхаб . Проверено 30 апреля 2016 г.
^ "Джанго не связан" . Проверено 30 апреля 2016 г.
^ пляжная машина. «GitHub — beachmachine/django-jython: серверные части базы данных и расширения для разработки Django поверх Jython». Гитхаб . Проверено 30 апреля 2016 г.
^ «Процесс выпуска Django — Документация Django — Django» . Проверено 30 апреля 2016 г.
^ «Представляем Django 0.90» . Блог Джанго. Проверено 2 февраля 2013 г.
^ «Выпущен Django 0.91» . Блог Джанго. Проверено 2 февраля 2013 г.
^ «Представляем Django 0.95» . Блог Джанго. Проверено 2 февраля 2013 г.
^ «Анонсируем Django 0.96!». Блог Джанго. Проверено 2 февраля 2013 г.
^ «Выпущен Django 1.0!». Блог Джанго. Проверено 2 февраля 2013 г.
^ «Выпущен Django 1.1» . Блог Джанго. Проверено 2 февраля 2013 г.
^ «Выпущен Django 1.2» . Блог Джанго. Проверено 2 февраля 2013 г.
^ «Выпущен Django 1.3» . Блог Джанго. Проверено 2 февраля 2013 г.
^ «Выпущен Django 1.4» . Блог Джанго. Проверено 2 февраля 2013 г.
^ «Выпущен Django 1.5» Блог Django. Проверено 27 февраля 2013 г.
^ «Выпущен Django 1.6» Блог Django. Проверено 6 ноября 2013 г.
^ «Выпущен Django 1.7» Блог Django. Проверено 4 сентября 2014 г.
^ «Выпущен Django 1.8» Блог Django. Проверено 2 апреля 2015 г.
^ «Выпущен Django 1.9» Блог Django. Проверено 1 декабря 2015 г.
^ «Выпущен Django 1.10» Блог Django. Проверено 1 августа 2016 г.
^ «Выпущен Django 1.11» Блог Django. Проверено 4 апреля 2017 г.
^ «Выпущен Django 2.0» Блог Django. Проверено 3 декабря 2017 г.
^ «Выпущен Django 2.1» Блог Django. Проверено 2 августа 2018 г.
^ Примечания к выпуску Django 2.2. Проверено 1 июля 2019 г.
^ Примечания к выпуску Django 3.0. Проверено 2 декабря 2019 г.
^ Примечания к выпуску Django 3.1. Проверено 5 августа 2020 г.
^ «Примечания к выпуску Django 3.2» . 6 апреля 2021 г. Проверено 7 июня 2021 г.
^ «Примечания к выпуску Django 4.0» . 7 декабря 2021 г. Проверено 4 августа 2022 г.
^ «Примечания к выпуску Django 4.1» . 3 августа 2022 г. Проверено 4 августа 2022 г.
^ «Примечания к выпуску Django 4.2» . Проверено 4 августа 2022 г.
^ Серия DjangoCon EU. Архивировано 4 марта 2016 г. на Wayback Machine , Lanyrd.com.
↑ Американская серия DjangoCon. Архивировано 2 апреля 2016 г. на Wayback Machine , Lanyrd.com.
^ "ДжангоКон". ДжангоКон. Архивировано из оригинала 5 августа 2012 года . Проверено 29 июля 2012 г.
^ "ДжангоКон". ДжангоКон . Проверено 1 декабря 2016 г.
^ "ДжангоКон". ДжангоКон.
^ "ДжангоКон". ДжангоКон.
^ DjangoCon AU. Сайт Djangocon.com.au. Проверено 16 декабря 2019 г.
^ «Джанго, рожденный Лоуренсом, который произвел революцию в создании веб-сайтов, отметив свое 10-летие» . Лоуренс Журнал-Мир . 9 июля 2015 года . Проверено 18 октября 2019 г.
^ «Django Girls — начните свой путь с программирования» . Проверено 21 октября 2019 г.
^ "Группы Джанго" . Встреча .
^ Shopify. «– Жидкий язык шаблонов». Жидкий язык шаблонов .
^ Симфония. «Главная — Twig — Гибкий, быстрый и безопасный механизм шаблонов PHP». twig.sensiolabs.org . Архивировано из оригинала 9 июля 2017 года . Проверено 10 декабря 2014 г.
^ «Django CMS — Управление корпоративным контентом с помощью Django — django CMS» . www.django-cms.org . Проверено 11 ноября 2020 г.
Библиография
Джайсвал, Санджив; Кумар, Ратан (22 июня 2015 г.), Изучение веб-разработки Django (1-е изд.), Packt, стр. 405, ISBN 978-1783984404
Равиндрун, Арун (31 марта 2015 г.), Шаблоны проектирования и лучшие практики Django (1-е изд.), Packt, стр. 180, ISBN 978-1783986644
Осборн, Трейси (май 2015 г.), Hello Web App (1-е изд.), Трейси Осборн, стр. 142, ISBN 978-0986365911
Бендорайтис, Айдас (октябрь 2014 г.), Веб-разработка с помощью кулинарной книги Django (1-е изд.), Packt, стр. 294, ISBN 978-1783286898
Баумгартнер, Питер; Малет, Янн (2015), High Performance Django (1-е изд.), Lincoln Loop, стр. 184, ISBN 978-1508748120
Эльман, Джулия; Лавин, Марк (2014), Легкий Джанго (1-е изд.), O'Reilly Media, стр. 246, ISBN 978-1491945940
Персиваль, Гарри (2014), Разработка через тестирование с использованием Python (1-е изд.), O'Reilly Media, стр. 480, ISBN 978-1449364823, архивировано из оригинала 16 июля 2017 года , получено 26 октября 2014 года.
Внешние ссылки
Викискладе есть медиафайлы, связанные с Django (веб-фреймворком) .