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

редактировать
Веб-фреймворк Python

Django
Django logo.svg
Страница Django по умолчанию
Автор (ы) Адриан Головатый, Саймон Уиллисон
Разработчик (и) Django Software Foundation
Первоначальный выпуск21 июля 2005 г.; 15 лет назад (21.07.2005)
Стабильный выпуск 3.1.1 / 1 сентября 2020 г.; 45 дней назад (2020-09-01)
Репозиторий Репозиторий Django
Написано наPython
Размер 8.9 MB
Тип Веб-фреймворк
Лицензия 3 пункта BSD
Веб-сайтwww.djangoproject.com Измените это в Викиданных

Django (; иногда стилизованный под django ) представляет собой основанный на Python бесплатный веб-фреймворк с открытым исходным кодом , который следует представлениям шаблонов моделей (MTV) архитектурный образец. Он поддерживается Django Software Foundation (DSF), американской независимой организацией, учрежденной как некоммерческая 501 (c) (3).

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

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

Содержание
  • 1 История
  • 2 Функции
    • 2.1 Компоненты
    • 2.2 Связанные приложения
    • 2.3 Расширяемость
    • 2.4 Расположение серверов
  • 3 История версий
  • 4 Инструменты разработки с поддержкой Django
  • 5 Сообщество
  • 6 Перенос на другие языки
  • 7 См. Также
  • 8 Ссылки
  • 9 Библиография
  • 10 Внешние ссылки
История

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

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

Возможности

Компоненты

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

Несмотря на свою собственную номенклатуру, например, именование вызываемых объектов, генерирующих ответы HTTP «представлениями», базовая структура Django может рассматриваться как архитектура MVC. Он состоит из объектно-реляционного сопоставителя (ORM), который является посредником между моделями данных (определенными как классы Python) и реляционной базой данных ("Model "), системой для обработки HTTP-запросов с помощью системы веб-шаблонов ("View ") и диспетчера на основе регулярных выражений URL (" C ontroller ").

В базовую структуру также включены:

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

связанных приложений

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

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

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

Система конфигурации Django позволяет стороннему коду быть подключенным ed в обычный проект при условии, что он следует соглашениям о многоразовых приложениях. Доступно более 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. Существует fork с именем 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.9016 ноября 2005 г.
Старая версия, больше не поддерживается: 0.9111 января 2006 г."new-admin"
Старая версия, больше не поддерживается: 0,9529 июля 2006 г."волшебное удаление"
Старая версия, больше не поддерживается: 0.9623 марта 2007 г.«новые формы», инструменты тестирования
Старая версия, больше не поддерживается: 1.03 сентября 2008Стабильность API, независимое администрирование, unicode
Старая версия, больше не поддерживается: 1.129 июля 2009 г.Агрегаты, тесты на основе транзакций
Старая версия, больше не поддерживается: 1.217 мая 2010 г.Несколько подключений к базе данных, CSRF, проверка модели
Старая версия, больше не поддерживается: 1.323 марта 2011 г.Представления на основе классов, статические файлы
Старая версия, больше не поддерживается: 1.4 LTS23 марта 2012 г.Часовые пояса, при тестировании браузера, шаблоны приложений.
Старая версия, больше не поддерживается: 1.526 февраля 2013 г.Поддержка Python 3, настраиваемая модель пользователя
Старая версия, больше не поддерживается: 1.66 ноября 2013 г.Посвящается Малкольму Трединнику, менеджменту транзакций БД, пулу соединений.
Старая версия, больше не поддерживается: 1.72 сентября 2014 г.Миграции, загрузка и настройка приложений.
Старая версия, больше не поддерживается: 1.8 LTS1 апреля 2015 г.Встроенная поддержка нескольких механизмов шаблонов. Поддержка закончилась 1 апреля 2018 г.
Старая версия, больше не поддерживается: 1.91 декабря 2015 г.Автоматическая проверка пароля. Новый стиль интерфейса администратора.
Старая версия, больше не поддерживается: 1.101 августа 2016 г.Полнотекстовый поиск для PostgreSQL. Промежуточное ПО нового стиля.
Старая версия, больше не поддерживается: 1.11 LTS4 апреля 2017 г.Последняя версия с поддержкой Python 2.7. Поддержка закончилась 1 апреля 2020 г.
Старая версия, больше не поддерживается: 2.02 декабря 2017 г.Первый выпуск только для Python 3, упрощенный синтаксис маршрутизации URL, удобный администратор для мобильных устройств.
Старая версия, больше не поддерживается: 2.11 августа 2018 г.Разрешение на «просмотр» модели.
Старая версия, но все еще поддерживается: 2.2 LTS1 апреля 2019 г.Выпуск безопасности. Поддерживается как минимум до апреля 2022 г.
Более старая версия, но все еще поддерживается: 3.02 декабря 2019 г.Поддержка ASGI
Текущая стабильная версия: 3.14 августа 2020Асинхронные представления и промежуточное ПО
Будущий выпуск: 3.2 LTSапрель 2021 г.Расширенная поддержка до апреля 2024 г.
Будущий выпуск: 4.0декабрь 2021 годаРасширенная поддержка до апреля 2023 года
Будущий выпуск: 4.1август 2022 годаРасширенная поддержка до декабря 2023 года
Будущий выпуск: 4.2 LTSапрель 2023 г.Расширенная поддержка до апреля 2026 г.
Условные обозначения: Старая версия Старая версия, все еще поддерживается Последняя версия Последняя предварительная версия Будущий выпуск
Инструменты разработки с поддержкой Django

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

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

Сообщество

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

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

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

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

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

См. Также
  • Портал бесплатного программного обеспечения с открытым исходным кодом
Ссылки
Библиография

Этот список взят из Текущие книги по Django

Внешние ссылки
На Викискладе есть материалы, связанные с Django (веб-фреймворк).

.

Последняя правка сделана 2021-05-17 10:03:03
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте