Django (веб-фреймворк) - Django (web framework)

Джанго
Django logo.svg
Целевая страница Django 2.1.png
Автор (ы) оригинала Адриан Головатый , Саймон Уиллисон
Разработчики) Фонд программного обеспечения Django
Первый выпуск 21 июля 2005 г . ; 16 лет назад ( 21.07.2005 )
Стабильный выпуск
3.2.7  Отредактируйте это в Викиданных / 1 сентября 2021 г . ; 46 дней назад ( 1 сентября 2021 г. )
Репозиторий
Написано в Python
Размер 8,9 МБ
Тип Веб-фреймворк
Лицензия 3-пункт BSD
Веб-сайт www .djangoproject .com Отредактируйте это в Викиданных

Джанго ( / æ ŋ ɡ / JANG -goh , иногда стилизованный под Джанго ) является Python -На бесплатно и с открытым исходным кодом веб - фреймворк , который следует модели-шаблона-просмотры (MTV) архитектурный рисунок . Он поддерживается Django Software Foundation (DSF), независимой организацией, учрежденной в США как некоммерческая организация согласно 501 (c) (3) .

Основная цель Django - упростить создание сложных веб-сайтов на основе баз данных. Фреймворк делает упор на возможность повторного использования и «подключаемость» компонентов, меньшее количество кода, низкое связывание, быструю разработку и принцип « не повторяйся» . Python используется повсюду, даже для настроек, файлов и моделей данных. Django также предоставляет дополнительный административный интерфейс создания, чтения, обновления и удаления, который генерируется динамически посредством самоанализа и настраивается с помощью моделей администратора.

Некоторые известные сайты, использующие Django, включают Instagram , Mozilla , Disqus , Bitbucket , Nextdoor и Clubhouse .

История

Django был создан осенью 2003 года, когда веб-программисты из газеты Lawrence Journal-World Адриан Головати и Саймон Уиллисон начали использовать Python для создания приложений. Джейкоба Каплан-Мосса наняли на раннем этапе разработки Django, незадолго до окончания стажировки Саймона Уиллисона. Он был выпущен публично под лицензией BSD в июле 2005 года. Фреймворк был назван в честь гитариста Джанго Рейнхардта . Адриан Головатый - цыганский джазовый гитарист и большой поклонник Джанго Рейнхардта.

В июне 2008 года было объявлено, что недавно созданная Django Software Foundation (DSF) будет поддерживать Django в будущем.

Функции

Компоненты

Снимок экрана интерфейса администратора Django для изменения учетной записи пользователя

Несмотря на наличие собственной номенклатуры, такой как присвоение имен вызываемым объектам, генерирующим HTTP- ответы, «представлениями», базовую структуру Django можно рассматривать как архитектуру MVC . Она состоит из объектно-реляционного Mapper (ОРМ) , который является связующим звеном между моделями данных (определяемой как классы Python) и реляционной базы данных ( « М Odel„), система для обработки HTTP - запросов с системой веб - шаблонного (“ V IEW») и регулярное выражение основанного URL диспетчера ( « C ontroller»).

Также в основной фреймворк входят:

  • легкий и автономный веб-сервер для разработки и тестирования
  • система сериализации и проверки форм, которая может переводить между HTML- формами и значениями, подходящими для хранения в базе данных
  • система шаблонов, использующая концепцию наследования, заимствованную из объектно-ориентированного программирования.
  • кэширование рамки , которые можно использовать любой из нескольких способов кэширования
  • поддержка классов промежуточного программного обеспечения, которые могут вмешиваться на различных этапах обработки запросов и выполнять настраиваемые функции
  • внутренняя диспетчерская система, которая позволяет компонентам приложения сообщать друг другу о событиях через заранее определенные сигналы.
  • система интернационализации , включая перевод собственных компонентов Django на различные языки
  • система сериализации , которая может создавать и читать представления XML и / или JSON экземпляров модели Django
  • система расширения возможностей шаблонизатора
  • интерфейс для встроенной среды модульного тестирования Python

Связанные приложения

Основной дистрибутив Django также объединяет ряд приложений в свой пакет contrib, в том числе:

  • расширяемая система аутентификации
  • динамический административный интерфейс
  • инструменты для создания каналов синдикации RSS и Atom
  • фреймворк "Сайты", который позволяет одной установке Django запускать несколько веб-сайтов, каждый со своим собственным контентом и приложениями.
  • инструменты для создания Google Sitemaps
  • встроенные средства защиты от подделки межсайтовых запросов , межсайтовых сценариев , SQL-инъекций , взлома паролей и других типичных веб-атак, большинство из которых включены по умолчанию
  • фреймворк для создания ГИС- приложений

Расширяемость

Система конфигурации Django позволяет встраивать сторонний код в обычный проект при условии, что он соответствует соглашениям о многократно используемых приложениях. Доступно более 2500 пакетов для расширения исходного поведения фреймворка, предлагая решения проблем, которые не решал оригинальный инструмент: регистрация, поиск, предоставление и использование API , CMS и т. Д.

Однако эта расширяемость смягчается зависимостями внутренних компонентов. Хотя философия Django подразумевает слабую связь, фильтры и теги шаблонов предполагают одну реализацию движка, а приложения, связанные с аутентификацией и администратором, требуют использования внутренней ORM . Ни один из этих фильтров или связанных приложений не является обязательным для запуска проекта Django, но многоразовые приложения, как правило, зависят от них, что побуждает разработчиков продолжать использовать официальный стек, чтобы в полной мере использовать экосистему приложений.

Расположение серверов

Django можно запускать вместе с Apache , Nginx с использованием WSGI , Gunicorn или Cherokee с использованием flup (модуль Python). Django также включает возможность запуска сервера FastCGI , что позволяет использовать его за любым веб-сервером, поддерживающим FastCGI, например Lighttpd или Hiawatha . Также возможно использование других веб-серверов, совместимых с WSGI . Django официально поддерживает пять баз данных: PostgreSQL , MySQL , MariaDB , SQLite и Oracle . Microsoft SQL Server можно использовать с django-mssql в операционных системах Microsoft , в то время как аналогичные внешние серверы существуют для IBM Db2 , SQL Anywhere и Firebird . Существует форк django-nonrel, который поддерживает базы данных NoSQL , такие как MongoDB и хранилище данных Google App Engine .

Django также можно запускать вместе с Jython на любом сервере приложений Java EE, таком как GlassFish или JBoss . В этом случае django-jython должен быть установлен, чтобы предоставить драйверы JDBC для подключения к базе данных, которые также могут предоставлять функциональные возможности для компиляции Django в .war, пригодный для развертывания.

Google App Engine включает поддержку Django версии 1.xx в качестве одной из интегрированных платформ.

История версий

Команда Django иногда назначает определенные выпуски выпусками с «долгосрочной поддержкой» (LTS). В выпусках LTS будут исправлены проблемы безопасности и потери данных, которые будут применяться в течение гарантированного периода времени, обычно 3+ года, независимо от скорости выпуска выпусков после этого.

Версия Дата Примечания
Старая версия, больше не поддерживается: 0,90 16 ноя 2005
Старая версия, больше не поддерживается: 0,91 11 января 2006 г. "новый-админ"
Старая версия, больше не поддерживается: 0,95 29 июля 2006 г. "волшебное удаление"
Старая версия, больше не поддерживается: 0,96 23 марта 2007 г. "newforms", инструменты тестирования
Старая версия, больше не поддерживается: 1.0 3 сен 2008 Стабильность API, независимый админ, юникод
Старая версия, больше не поддерживается: 1.1 29 июля 2009 г. Агрегаты, тесты на основе транзакций
Старая версия, больше не поддерживается: 1.2 17 мая 2010 г. Множественные подключения к базе данных , CSRF , проверка модели
Старая версия, больше не поддерживается: 1.3 23 марта 2011 г. Представления на основе классов, статические файлы
Старая версия, больше не поддерживается: 1.4 LTS 23 марта 2012 г. Часовые пояса, при тестировании браузера, в шаблонах приложений.
Старая версия, больше не поддерживается: 1.5 26 февраля 2013 г. Поддержка Python 3, настраиваемая модель пользователя
Старая версия, больше не поддерживается: 1.6 6 ноя 2013 Посвящается Малкольму Трединнику, управлению транзакциями БД, пулу соединений.
Старая версия, больше не поддерживается: 1,7 2 сен 2014 Миграции, загрузка и настройка приложений.
Старая версия, больше не поддерживается: 1,8 LTS 1 апреля 2015 г. Встроенная поддержка нескольких движков шаблонов. Поддержка закончилась 1 апреля 2018 г.
Старая версия, больше не поддерживается: 1.9 1 декабря 2015 г. Автоматическая проверка пароля. Новый стиль интерфейса администратора.
Старая версия, больше не поддерживается: 1,10 1 августа 2016 г. Полнотекстовый поиск для PostgreSQL. Промежуточное ПО нового стиля.
Старая версия, больше не поддерживается: 1.11 LTS 4 апреля 2017 г. Последняя версия с поддержкой Python 2.7. Поддержка закончилась 1 апреля 2020 г.
Старая версия, больше не поддерживается: 2.0 2 декабря 2017 Первый выпуск только для Python 3, упрощенный синтаксис маршрутизации URL-адресов, удобный администратор для мобильных устройств.
Старая версия, больше не поддерживается: 2.1 1 августа 2018 г. Разрешение "просмотра" модели.
Старая версия, но все еще поддерживается: 2.2 LTS 1 апреля 2019 г. Выпуск безопасности. Поддерживается как минимум до апреля 2022 г.
Старая версия, но все еще поддерживается: 3.0 2 декабря 2019 Поддержка ASGI
Старая версия, но все еще поддерживается: 3.1 4 августа 2020 Асинхронные представления и промежуточное ПО
Текущая стабильная версия: 3.2 LTS 6 апреля 2021 г. Расширенная поддержка до апреля 2024 г.
Будущий выпуск: 4.0 Декабрь 2021 г. Расширенная поддержка до апреля 2023 г.
Будущий выпуск: 4.1 Август 2022 г. Расширенная поддержка до декабря 2023 г.
Будущий выпуск: 4.2 LTS Апрель 2023 г. Расширенная поддержка до апреля 2026 г.
Будущий выпуск: 5.0 Декабрь 2023 г. Расширенная поддержка до апреля 2025 г.
Легенда:
Старая версия
Старая версия, все еще поддерживается
Последняя версия
Последняя предварительная версия
Будущий выпуск

Инструменты разработки с поддержкой Django

Для разработки проекта Django не нужны специальные инструменты, поскольку исходный код можно редактировать с помощью любого обычного текстового редактора . Тем не менее редакторы, специализирующиеся на компьютерном программировании, могут помочь повысить продуктивность разработки, например, с помощью таких функций, как подсветка синтаксиса . Поскольку Django написан на Python, в этом отношении полезны текстовые редакторы, которые знают синтаксис Python.

Интегрированные среды разработки (IDE) добавляют дополнительные функции, такие как отладка , рефакторинг и модульное тестирование . Как и в случае с обычными редакторами, IDE с поддержкой Python могут быть полезны. Некоторые IDE, специализирующиеся на Python, дополнительно имеют интегрированную поддержку проектов Django, поэтому использование такой IDE при разработке проекта Django может способствовать дальнейшему повышению производительности. Для сравнения таких Python IDE см. Основную статью:

Сообщество

Раз в полгода для разработчиков и пользователей Django проводится конференция под названием «DjangoCon», которая проводится с сентября 2008 года. DjangoCon проводится ежегодно в Европе в мае или июне; а другой проводится в США в августе или сентябре в разных городах. DjangoCon 2012 проходил в Вашингтоне, округ Колумбия, с 3 по 8 сентября. В 2013 году DjangoCon проводился в Чикаго в отеле Hyatt Regency, а спринты после конференции проводились в Digital Bootcamp, компьютерном учебном центре. DjangoCon US 2014 вернулся в Портленд , штат Орегон, с 30 августа по 6 сентября. DjangoCon US 2015 проходил в Остине , штат Техас, с 6 по 11 сентября в представительском центре AT&T. DjangoCon US 2016 проходил в Филадельфии, штат Пенсильвания, в школе Wharton при Пенсильванском университете с 17 по 22 июля. DjangoCon US 2017 проходил в Спокане, штат Вашингтон; в 2018 году DjangoCon US проводился в Сан-Диего, Калифорния. DjangoCon US 2019 снова прошел в Сан-Диего, Калифорния, с 22 по 27 сентября.

Мини-конференции Django обычно проводятся каждый год в рамках австралийской конференции Python PyCon AU. Ранее такие мини-конференции проводились в:

  • Хобарт , Австралия, в июле 2013 г.
  • Брисбен , Австралия, в августе 2014 и 2015 гг.
  • Мельбурн , Австралия, в августе 2016 и 2017 гг., И
  • Сидней , Австралия, в августе 2018 и 2019 гг.

Django породил группы пользователей и встречи по всему миру, наиболее заметной из которых является организация Django Girls , которая началась в Польше, но теперь проводит мероприятия в 91 стране.

Перенос на другие языки

Программисты перенесли дизайн движка шаблонов Django с Python на другие языки, обеспечив приличную кроссплатформенную поддержку. Некоторые из этих вариантов являются более прямыми портами; другие, хотя и вдохновлены Django и сохраняют его концепции, берут на себя смелость отклоняться от дизайна Django:

CMS на основе Django Framework

Django как фреймворк может создавать полноценную CMS , однако существуют специальные проекты CMS, которые построены на основе Django и расширяют его. Ниже приведен список наиболее популярных CMS на основе Django:

Смотрите также

использованная литература

Библиография

  • Джайсвал, Санджив; Кумар, Ратан (22 июня 2015 г.), Изучение веб-разработки на Django (1-е изд.), Packt, стр. 405, ISBN 1783984406
  • Равиндрун, Арун (31 марта 2015 г.), Django Design Patterns and Best Practices (1-е изд.), Packt, стр. 180, ISBN 1783986646
  • Осборн, Трейси (май 2015 г.), Hello Web App (1-е изд.), Трейси Осборн, стр. 142, ISBN 0986365912
  • Бендорайтис, Айдас (октябрь 2014 г.), Веб-разработка с помощью Django Cookbook (1-е изд.), Packt, стр. 294, ISBN 178328689X
  • Баумгартнер, Питер; Малет, Янн (2015), High Performance Django (1-е изд.), Lincoln Loop, стр. 184, ISBN 1508748128
  • Эльман, Юлия; Лавин, Марк (2014), Легкий Django (1-е изд.), O'Reilly Media, стр. 246, ISBN 149194594X
  • Персиваль, Гарри (2014), Разработка через тестирование с помощью Python (1-е изд.), O'Reilly Media, стр. 480, ISBN 1449364829

Этот список извлечен из Current Django Books

внешние ссылки