Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Джанго ( / æ ŋ ɡ / JANG -goh , иногда стилизованный под Джанго ) [8] является Python -На бесплатно и с открытым исходным кодом веб - фреймворк , который следует модель-шаблонный просмотров (МТВ) архитектурного шаблона . [9] [10] Он поддерживается Django Software Foundation (DSF), американской независимой организацией, учрежденной как некоммерческая организация согласно 501 (c) (3) .

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

Некоторые известные сайты, использующие Django, включают PBS , [12] Instagram , [13] Mozilla , [14] The Washington Times , [15] Disqus , [16] Bitbucket , [17] и Nextdoor . [18]

История [ править ]

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

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

Особенности [ править ]

Компоненты [ править ]

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

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

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

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

Связанные приложения [ править ]

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

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

Расширяемость [ править ]

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

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

Расположение серверов [ править ]

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

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

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

История версий [ править ]

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

Инструменты разработки с поддержкой 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 US 2014 вернулся в Портленд , штат Орегон, с 30 августа по 6 сентября. 2015 DjangoCon US прошел в Остине, Техас с 6 по 11 сентября в представительском центре AT&T. DjangoCon US 2016 проходил в Филадельфии, штат Пенсильвания, в школе Wharton при Пенсильванском университете с 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] самая заметная группа - это организация Django Girls , которая началась в Польше, но теперь проводит мероприятия в 91 стране. [70] [71]

Перенос на другие языки [ править ]

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

  • Жидкость для Руби [72]
  • Template :: Swig для Perl [73]
  • Twig для PHP и JavaScript [74] [75]
  • Jinja для Python [76]
  • ErlyDTL для Erlang [77]

CMS на основе Django Framework [ править ]

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

  • Django CMS [78]
  • Трясогузка
  • Антресоль

См. Также [ править ]

  • Flask (веб-фреймворк)
  • Проект пилонов
  • Сравнение веб-фреймворков
  • Web2py
  • Рубин на рельсах

Ссылки [ править ]

  1. ^ "django / README" . GitHub . Проверено 8 сентября 2020 .
  2. ^ "Django FAQ" . Проверено 27 марта 2019 .
  3. ^ "Примечания к выпуску Django 3.1.6 | Документация Django | Django" . Проверено 3 февраля 2021 года .
  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. ^ a b «FAQ: Общие - Документация Django - Django» . Проверено 30 апреля 2016 года .
  10. ^ a b Адриан Головатый, Джейкоб Каплан-Мосс; и другие. Книга Джанго . Архивировано из оригинального 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" . Проект 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. ^ Джанго документация развертывания архивного 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. ^ a b c d e Загрузить Django
  62. ^ Серии DjangoCon ЕС архивации 4 марта 2016 в Wayback Machine , Lanyrd.com
  63. ^ Серии DjangoCon США архивации 2 апреля 2016 в Wayback Machine , Lanyrd.com
  64. ^ "DjangoCon" . DjangoCon. Архивировано из оригинала на 5 августа 2012 года . Проверено 29 июля 2012 года .
  65. ^ "DjangoCon" . DjangoCon . Дата обращения 1 декабря 2016 .
  66. ^ "DjangoCon" . DjangoCon.
  67. ^ "DjangoCon" . 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» . Язык жидких шаблонов .
  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 .

Библиография [ править ]

  • Джайсвал, Санджив; Кумар, Ратан (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
  • Баумгартнер, Питер; Malet, Yann (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

Внешние ссылки [ править ]

  • Официальный веб-сайт