stringtranslate.com

Джанго (веб-фреймворк)

Django ( / ˈ æ ŋ ɡ / JANG -goh ; иногда стилизованный под django ) [6] — это бесплатная веб-платформа с открытым исходным кодом на основе Python , работающая на веб-сервере. Он соответствует архитектурному шаблону модель-шаблон-представления (MTV) . [7] [8] Он поддерживается Django Software Foundation (DSF), независимой организацией, созданной в США как некоммерческая организация 501(c)(3) .

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

Некоторые известные сайты, использующие Django, включают Instagram , [10] Mozilla , [11] Disqus , [12] Bitbucket , [13] Nextdoor [14] и Clubhouse . [15]

История

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

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

Функции

Компоненты

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

Несмотря на наличие собственной номенклатуры, такой как наименование вызываемых объектов, генерирующих HTTP- ответы, «представлениями», [7] базовую структуру Django можно рассматривать как архитектуру MVC . [8] Он состоит из объектно-реляционного преобразователя (ORM), который является посредником между моделями данных (определенными как классы Python) и реляционной базой данныхМодель »), системой обработки HTTP-запросов с системой веб-шаблоновV») . iew») и диспетчер URL-адресов на основе регулярных выраженийКонтроллер »).

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

Пакетные приложения

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

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

Система конфигурации 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:

CMS на базе Django Framework.

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

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

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

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

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

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