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

Джанго
Django logo.svg
The default Django page
Оригинальный автор (ы)Адриан Головатый, Саймон Уиллисон
Разработчики)Фонд программного обеспечения Django[1]
изначальный выпуск21 июля 2005 г.; 15 лет назад (2005-07-21)[2]
Стабильный выпуск
3.1.1 / 1 сентября 2020; 3 месяца назад (2020-09-01)[3]
РепозиторийРепозиторий Django
Написано вPython[4]
Размер8.9 МБ[5]
ТипВеб-фреймворк[6]
Лицензия3-пункт BSD[7]
Интернет сайтwww.djangoproject.com Отредактируйте это в Викиданных

Джанго (/ˈæŋɡ/ JANG-гох; иногда стилизованный под джанго)[8] это Python -основан бесплатно и с открытым исходным кодом веб-фреймворк который следует за моделями-шаблонами-представлениями (MTV) архитектурный образец.[9][10] Он поддерживается Фонд программного обеспечения Django (DSF), американская независимая организация, созданная как 501 (с) (3) некоммерческая.

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

Некоторые известные сайты, использующие Django, включают PBS,[12] Instagram,[13] Mozilla,[14] Вашингтон Таймс,[15] Disqus,[16] Bitbucket,[17] и По соседству.[18]

История

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

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

Функции

Составные части

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

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

Также в базовую структуру входят:

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

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

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

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

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

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

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

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

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

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

Google App Engine включает поддержку Django версии 1.x.x[36] как один из фреймворков.

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

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

ВерсияДата[38]Примечания[39]
Старая версия, больше не поддерживается: 0.90[40]16 ноя 2005
Старая версия, больше не поддерживается: 0.91[41]11 января 2006 г."новый-админ"
Старая версия, больше не поддерживается: 0.95[42]29 июля 2006 г."волшебное удаление"
Старая версия, больше не поддерживается: 0.96[43]23 марта 2007 г."новые формы", инструменты тестирования
Старая версия, больше не поддерживается: 1.0[44]3 сен 2008Стабильность API, независимый админ, юникод
Старая версия, больше не поддерживается: 1.1[45]29 июля 2009 г.Агрегаты, тесты на основе транзакций
Старая версия, больше не поддерживается: 1.2[46]17 мая 2010 г.Несколько подключений к базе данных, CSRF, проверка модели
Старая версия, больше не поддерживается: 1.3[47]23 марта 2011 г.Представления на основе классов, статические файлы
Старая версия, больше не поддерживается: 1.4 LTS[48]23 марта 2012 г.Часовые пояса, в тестировании браузера, в шаблонах приложений.
Старая версия, больше не поддерживается: 1.5[49]26 февраля 2013 г.Поддержка Python 3, настраиваемая модель пользователя
Старая версия, больше не поддерживается: 1.6[50]6 ноя 2013Посвящается Малкольму Трединнику, управлению транзакциями БД, пулу соединений.
Старая версия, больше не поддерживается: 1.7[51]2 сен 2014Миграции, загрузка и настройка приложений.
Старая версия, больше не поддерживается: 1,8 LTS[52]1 апреля 2015 г.Встроенная поддержка нескольких движков шаблонов. Поддержка закончилась 1 апреля 2018 г.
Старая версия, больше не поддерживается: 1.9[53]1 декабря 2015 г.Автоматическая проверка пароля. Новый стиль интерфейса администратора.
Старая версия, больше не поддерживается: 1.10[54]1 августа 2016 г.Полнотекстовый поиск PostgreSQL. Промежуточное ПО нового стиля.
Старая версия, больше не поддерживается: 1.11 LTS[55]4 апреля 2017Последняя версия с поддержкой Python 2.7. Поддержка закончилась 1 апреля 2020 г.
Старая версия, больше не поддерживается: 2.0[56]2 декабря 2017Первый выпуск только для Python 3, упрощенный синтаксис маршрутизации URL, удобный для мобильных устройств администратор.
Старая версия, больше не поддерживается: 2.1[57]1 августа 2018 г.Разрешение "просмотра" модели.
Старая версия, но все еще поддерживается: 2.2 LTS[58]1 апреля 2019 г.Выпуск безопасности. Поддерживается как минимум до апреля 2022 г.
Старая версия, но все еще поддерживается: 3.0[59]2 декабря 2019Поддержка ASGI
Текущая стабильная версия: 3.1[60]4 августа 2020Асинхронные представления и промежуточное ПО
Будущий выпуск: 3.2 LTS[61]Апрель 2021 г.Расширенная поддержка до апреля 2024 г.
Будущий выпуск: 4.0[61]Декабрь 2021 г.Расширенная поддержка до апреля 2023 г.
Будущий выпуск: 4.1[61]Август 2022 г.Расширенная поддержка до декабря 2023 г.
Будущий выпуск: 4.2 LTS[61]Апрель 2023 г.Расширенная поддержка до апреля 2026 г.
Легенда:
Старая версия
Старая версия, все еще поддерживается
Последняя версия
Последняя предварительная версия
Будущий выпуск

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

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

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

Сообщество

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

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

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

Django породил группы пользователей и встречи по всему миру,[69] самая известная группа - это Джанго Девушки организация, которая началась в Польше, но теперь провела мероприятия в 91 стране.[70][71]

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

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

CMS на основе Django Framework

Django as framework может создавать CMS. Однако уже доступно несколько CMS, построенных на Django. Ниже приведен список некоторых CMS, построенных на платформе Django:

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

Рекомендации

  1. ^ "django / README". GitHub. Получено 8 сентября 2020.
  2. ^ "Django FAQ". Получено 27 марта 2019.
  3. ^ https://github.com/django/django/releases
  4. ^ "django / README". GitHub. Получено 8 сентября 2020.
  5. ^ "Django Download". Получено 7 августа 2020.
  6. ^ "django / README". GitHub. Получено 8 сентября 2020.
  7. ^ "django / ЛИЦЕНЗИЯ". GitHub. Получено 8 сентября 2020.
  8. ^ "FAQ: Общие - Документация Django - Django". Получено 30 апреля 2016.
  9. ^ а б "FAQ: Общие - Документация Django - Django". Получено 30 апреля 2016.
  10. ^ а б Адриан Головатый, Джейкоб Каплан-Мосс; и другие. Книга Джанго. Архивировано из оригинал 2 сентября 2016 г.. Получено 3 сентября 2013. Django следует этому шаблону MVC достаточно близко, чтобы его можно было назвать фреймворком MVC.
  11. ^ «Философия дизайна». Джанго. Получено 18 марта 2018.
  12. ^ "20 креативных сайтов, работающих на Django".
  13. ^ «Что движет Instagram: сотни экземпляров, десятки технологий».
  14. ^ «Питон». Сеть разработчиков Mozilla. Получено 30 апреля 2016.
  15. ^ Opensource.washingtontimes.com. Проверено 30 мая 2014.
  16. ^ «Масштабирование Django до 8 миллиардов просмотров страниц».
  17. ^ "DjangoSuccessStoryBitbucket - Django". Архивировано из оригинал 20 апреля 2016 г.. Получено 30 апреля 2016.
  18. ^ «Анти-Facebook: каждый четвертый американский квартал теперь использует эту частную социальную сеть». Грани. Получено 16 июн 2016.
  19. ^ «Какова история веб-фреймворка Django? Почему его называют« разработанным в отделе новостей »?». Получено 18 октября 2019.
  20. ^ "Знакомство с Django". Книга Джанго. Получено 29 июля 2018.
  21. ^ «Представляем Django Software Foundation - блог - Django». Получено 30 апреля 2016.
  22. ^ «Безопасность в Django». Проект Джанго. Получено 25 марта 2013.
  23. ^ Socol, Джеймс (2012). «Лучшие базовые методы обеспечения безопасности (особенно с Django)». Получено 25 марта 2013.
  24. ^ «Что такое многоразовое приложение? - документация django-reusable-app-docs 0.1.0». Получено 30 апреля 2016.
  25. ^ "Пакеты Django". Получено 30 апреля 2016.
  26. ^ «Философия дизайна - документация Django - Django». Получено 30 апреля 2016.
  27. ^ Документация по развертыванию Django В архиве 11 января 2012 г. Wayback Machine
  28. ^ "Веб-сервер Cherokee - Поваренная книга Настройка Django - Документация Cherokee". Получено 30 апреля 2016.
  29. ^ Как использовать Django с Apache и mod_wsgi В архиве 8 марта 2013 г. Wayback Machine. Официальная документация Django.
  30. ^ "Manfre / django-mssql / source / - Bitbucket". Получено 30 апреля 2016.
  31. ^ ibmdb. «GitHub - ibmdb / python-ibmdb: автоматически экспортируется из code.google.com/p/ibm-db». GitHub. Получено 30 апреля 2016.
  32. ^ "Архив Google Code - долгосрочное хранилище для хостинга проектов Google Code". Получено 30 апреля 2016.
  33. ^ maxirobaina. "GitHub - maxirobaina / django-firebird: серверная часть SQL Firebird для django". GitHub. Получено 30 апреля 2016.
  34. ^ "Django non-rel". Получено 30 апреля 2016.
  35. ^ пляжная машина. «GitHub - beachmachine / django-jython: серверные части и расширения баз данных для разработки Django поверх Jython». GitHub. Получено 30 апреля 2016.
  36. ^ Запуск проектов Pure Django на Google App Engine. Code.google.com (01.11.2010). Проверено 5 декабря 2011 г.
  37. ^ "Процесс выпуска Django - документация Django - Django". Получено 30 апреля 2016.
  38. ^ "Загрузить Django - Django". www.djangoproject.com.
  39. ^ «FAQ: Установка - Документация Django - Django». docs.djangoproject.com.
  40. ^ "Представляем Django 0.90". Журнал Django. Проверено 2 февраля 2013 года.
  41. ^ «Выпущен Django 0.91». Журнал Django. Проверено 2 февраля 2013 года.
  42. ^ "Представляем Django 0.95". Журнал Django. Проверено 2 февраля 2013 года.
  43. ^ "Представляем Django 0.96!". Журнал Django. Проверено 2 февраля 2013 года.
  44. ^ «Выпущен Django 1.0!». Журнал Django. Проверено 2 февраля 2013 года.
  45. ^ «Выпущен Django 1.1». Журнал Django. Проверено 2 февраля 2013 года.
  46. ^ «Выпущен Django 1.2». Журнал Django. Проверено 2 февраля 2013 года.
  47. ^ «Выпущен Django 1.3». Журнал Django. Проверено 2 февраля 2013 года.
  48. ^ «Выпущен Django 1.4». Журнал Django. Проверено 2 февраля 2013 года.
  49. ^ «Выпущен Django 1.5» Журнал Django. Проверено 27 февраля 2013 года.
  50. ^ «Выпущен Django 1.6» Журнал Django. Проверено 6 ноября 2013 года.
  51. ^ «Выпущен Django 1.7» Журнал Django. Проверено 4 сентября 2014 года.
  52. ^ «Выпущен Django 1.8» Журнал Django. Дата обращения 2 апреля 2015.
  53. ^ «Выпущен Django 1.9» Журнал Django. Дата обращения 1 декабря 2015.
  54. ^ «Выпущен Django 1.10» Журнал Django. Проверено 1 августа +2016.
  55. ^ «Выпущен Django 1.11» Журнал Django. Проверено 4 апреля 2017 года.
  56. ^ «Выпущен Django 2.0» Журнал Django. Дата обращения 3 декабря 2017.
  57. ^ «Выпущен Django 2.1» Журнал Django. Проверено 2 августа 2018.
  58. ^ Примечания к выпуску Django 2.2.3 Дата обращения 1 июля 2019.
  59. ^ Примечания к выпуску Django 3.0 Дата обращения 2 декабря 2019.
  60. ^ Примечания к выпуску Django 3.1 Дата обращения 5 августа 2020.
  61. ^ а б c d Скачать Django
  62. ^ Серия DjangoCon EU В архиве 4 марта 2016 г. Wayback Machine, Lanyrd.com
  63. ^ DjangoCon серия США В архиве 2 апреля 2016 г. Wayback Machine, Lanyrd.com
  64. ^ «ДжангоКон». DjangoCon. Архивировано из оригинал 5 августа 2012 г.. Получено 29 июля 2012.
  65. ^ «ДжангоКон». DjangoCon. Получено 1 декабря 2016.
  66. ^ «ДжангоКон». DjangoCon.
  67. ^ «ДжангоКон». DjangoCon.
  68. ^ DjangoCon AU. Djangocon.com.au. Проверено 16 декабря 2019.
  69. ^ https://www.meetup.com/topics/django/
  70. ^ «Джанго, рожденный Лоуренсом, который произвел революцию в создании веб-сайтов, празднуя свое 10-летие». Лоуренс Журнал-Мир. 9 июля 2015 г.. Получено 18 октября 2019.
  71. ^ «Django Girls - начни свое путешествие с программирования». Получено 21 октября 2019.
  72. ^ Shopify. «- Язык шаблонов Liquid». Язык шаблонов Liquid.
  73. ^ "Template :: Swig - Perl-интерфейс для движка шаблонов Swig, вдохновленного Django. - metacpan.org". metacpan.org.
  74. ^ Symfony. "Home - Twig - гибкий, быстрый и безопасный механизм шаблонов PHP". twig.sensiolabs.org.
  75. ^ "twigjs / twig.js". GitHub.
  76. ^ «Добро пожаловать - Jinja2 (механизм шаблонов Python)». jinja.pocoo.org.
  77. ^ "erlydtl / erlydtl". GitHub.
  78. ^ "django CMS - Управление корпоративным контентом с помощью Django - django CMS". www.django-cms.org. Получено 11 ноября 2020.

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

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

внешняя ссылка