Джанго (веб-фреймворк)
![]() | |||
![]() | |||
Оригинальный автор(ы) | Адриан Головатый , Саймон Уиллисон | ||
---|---|---|---|
Разработчик(и) | Фонд программного обеспечения Джанго [1] | ||
Первоначальный выпуск | 21 июля 2005 г [2] | ||
Стабильная версия |
| ||
Репозиторий | |||
Написано в | Питон [1] | ||
Размер | 8,9 МБ [4] | ||
Тип | Веб-фреймворк [1] | ||
Лицензия | 3-пунктовый BSD [5] | ||
Веб-сайт | www ![]() |
Джанго ( / ˈ dʒ æ ŋ ɡ oʊ / JANG -goh ; иногда стилизуется под джанго ) [6] — это с открытым исходным кодом , Python на основе бесплатная веб-платформа работающая на веб-сервере. модель-шаблон-представления (MTV) Он соответствует архитектурному шаблону . [7] [8] Его поддерживает Django Software Foundation (DSF), независимая организация, созданная в США как организация 501(c)(3) некоммерческая .
Основная цель Django — облегчить создание сложных веб-сайтов, управляемых базами данных. Фреймворк подчеркивает возможность повторного использования и «подключаемости» компонентов, меньшее количество кода, низкую связанность, быструю разработку и принцип « не повторяйся» . [9] Python используется повсюду, даже для настроек, файлов и моделей данных . Django также предоставляет дополнительный административный интерфейс создания, чтения, обновления и удаления , который генерируется динамически посредством самоанализа и настраивается с помощью моделей администрирования.
Некоторые известные сайты, использующие Django, включают Instagram , [10] Мозилла , [11] DisqusДискус [12] Битбакет , [13] По соседству [14] и Клубный дом . [15]
История
[ редактировать ]Django был создан осенью 2003 года, когда веб-программисты газеты Lawrence Journal-World Адриан Головатый и Саймон Уиллисон начали использовать Python для создания приложений. Джейкоб Каплан-Мосс был нанят на раннем этапе разработки Django, незадолго до окончания стажировки Саймона Уиллисона. [16] Он был выпущен публично под лицензией BSD в июле 2005 года. Фреймворк был назван в честь гитариста Джанго Рейнхардта . [17] Адриан Головатый — цыганский джазовый гитарист, частично вдохновленный музыкой Райнхардта. [18]
В июне 2008 года было объявлено, что недавно созданный Django Software Foundation (DSF) будет поддерживать Django в будущем. [19]
Функции
[ редактировать ]Компоненты
[ редактировать ]
Несмотря на наличие собственной номенклатуры, такой как наименование вызываемых объектов, генерирующих HTTP- ответы, «представлениями», [7] Базовую структуру Django можно рассматривать как архитектуру MVC . [8] Он состоит из объектно-реляционного преобразователя (ORM), который является посредником между моделями данных (определенными как классы Python) и реляционной базой данных (« Модель »), системой обработки HTTP-запросов с помощью системы веб-шаблонов (« Просмотр »). и регулярных выражений на основе диспетчер URL-адресов (« Контроллер »).
В базовую структуру также включены:
- легкий и автономный веб-сервер для разработки и тестирования
- и проверки форм система сериализации , которая может преобразовывать формы HTML и значения, подходящие для хранения в базе данных.
- система шаблонов, использующая концепцию наследования , заимствованную из объектно-ориентированного программирования.
- платформа кэширования , которая может использовать любой из нескольких методов кэширования
- поддержка классов промежуточного программного обеспечения , которые могут вмешиваться на различных этапах обработки запросов и выполнять пользовательские функции
- внутренняя диспетчерская система, которая позволяет компонентам приложения передавать события друг другу через заранее определенные сигналы.
- система интернационализации , включая переводы собственных компонентов Django на различные языки.
- система сериализации , которая может создавать и читать XML- и/или JSON- представления экземпляров модели Django.
- система расширения возможностей шаблонизатора
- интерфейс для встроенной модульного тестирования Python среды
Пакетные приложения
[ редактировать ]Основной дистрибутив Django также включает в свой пакет «contrib» ряд приложений, в том числе:
- расширяемая система аутентификации
- динамический административный интерфейс
- инструменты для создания RSS и Atom каналов распространения
- платформа «Сайты», которая позволяет одной установке Django запускать несколько веб-сайтов, каждый со своим собственным контентом и приложениями.
- инструменты для создания файлов Sitemap
- встроенные средства защиты от подделки межсайтовых запросов , межсайтовых сценариев , SQL-инъекций , взлома паролей и других типичных веб-атак, большинство из которых включены по умолчанию. [20] [21]
- среда для создания приложений географической информационной системы (ГИС)
Расширяемость
[ редактировать ]Система конфигурации 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 где угодно [30] и Жар-птица . [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 лет, независимо от темпов выпуска последующих выпусков.
Версия | Дата выпуска [35] | Конец основной поддержки | Окончание расширенной поддержки | Примечания [36] |
---|---|---|---|---|
[37] | 0.90.16 ноября 2005 г. | |||
[38] | 0.91.11 января 2006 г. | "новый администратор" | ||
[39] | 0.95.29 июля 2006 г. | «волшебное удаление» | ||
[40] | 0.96.23 марта 2007 г. | «ньюформы», инструменты тестирования | ||
[41] | 1.0.3 сентября 2008 г. | Стабильность API, разделенное администрирование, юникод | ||
[42] | 1.1.29 июля 2009 г. | Агрегаты, тесты на основе транзакций | ||
[43] | 1.2.17 мая 2010 г. | Несколько подключений к базе данных, CSRF , проверка модели | ||
[44] | 1.3.23 марта 2011 г. | 23 марта 2012 г. | 26 февраля 2013 г. | Представления на основе классов, статические файлы |
[45] | 1.4 LTS.23 марта 2012 г. | 26 февраля 2013 г. | 1 октября 2015 г. | Часовые пояса, тестирование браузеров, шаблоны приложений. |
[46] | 1.5.26 февраля 2013 г. | 6 ноября 2013 г. | 2 сентября 2014 г. | Поддержка Python 3, настраиваемая модель пользователя |
[47] | 1.6.6 ноября 2013 г. | 2 сентября 2014 г. | 1 апреля 2015 г. | Посвящается Малкольму Трединнику, управлению транзакциями БД, пулу соединений. |
[48] | 1.7.2 сентября 2014 г. | 1 апреля 2015 г. | 1 декабря 2015 г. | Миграции, загрузка и настройка приложений. |
[49] | 1.8 LTS.1 апреля 2015 г. | 1 декабря 2015 г. | 1 апреля 2018 г. | Встроенная поддержка нескольких механизмов шаблонов. Поддержка закончилась 1 апреля 2018 г. |
[50] | 1.9.1 декабря 2015 г. | 1 августа 2016 г. | 4 апреля 2017 г. | Автоматическая проверка пароля. Новый стиль интерфейса администратора. |
[51] | 1.10.1 августа 2016 г. | 4 апреля 2017 г. | 2 декабря 2017 г. | Полнотекстовый поиск PostgreSQL. Промежуточное программное обеспечение нового стиля. |
[52] | 1.11 LTS.4 апреля 2017 г. | 2 декабря 2017 г. | 1 апреля 2020 г. | Последняя версия с поддержкой Python 2.7. Поддержка закончилась 1 апреля 2020 г. |
[53] | 2.0.2 декабря 2017 г. | 1 августа 2018 г. | 1 апреля 2019 г. | Первый выпуск только для Python 3. Упрощенный синтаксис маршрутизации URL-адресов. Администратор, удобный для мобильных устройств. |
[54] | 2.1.1 августа 2018 г. | 1 апреля 2019 г. | 2 декабря 2019 г. | Разрешение на просмотр модели. |
[55] | 2.2 LTS.1 апреля 2019 г. | 2 декабря 2019 г. | 11 апреля 2022 г. | Релиз безопасности. |
[56] | 3.0.2 декабря 2019 г. | 3 августа 2020 г. | 6 апреля 2020 г. | АСГИ Поддержка |
[57] | 3.1.4 августа 2020 г. | 6 апреля 2020 г. | 7 декабря 2021 г. | Асинхронные представления и промежуточное программное обеспечение |
[58] | 3.2 LTS.6 апреля 2021 г. | 7 декабря 2021 г. | апрель 2024 г. | Отслеживание связей «многие ко многим», добавлена поддержка Python 3.11. |
[59] | 4.0.7 декабря 2021 г. | 3 августа 2022 г. | апрель 2023 г. | Поддержка pytz теперь устарел и будет удален в Django 5.0. |
[60] | 4.1.3 августа 2022 г. | апрель 2023 г. | декабрь 2023 г. | Асинхронный интерфейс ORM, CSRF_COOKIE_MASKED установка, вывод формы, например {{ form }} |
[61] | 4.2 LTS.3 апреля 2023 г. | декабрь 2023 г. | апрель 2026 г. | Поддержка Псикопг 3, ENGINE как django.db.backends.postgresql поддерживает обе библиотеки. |
5.0. | 4 декабря 2023 г. | август 2024 г. | апрель 2025 г. | |
Старая версия Старая версия, все еще поддерживается Последняя версия Последняя предварительная версия Будущий выпуск |
ДжангоКон
[ редактировать ]С сентября 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 октября. DjangoCon US 2023 проходил с 16 по 20 октября в Конференц-центр Дарема , Северной Каролины и DjangoCon US 2024 должны вернуться в Дарем с 22 по 27 сентября. [68] [69]
Мини-конференции Django обычно проводятся каждый год в рамках австралийской конференции Python «PyCon AU». [70] Ранее подобные мини-конференции проводились в:
- Хобарт , Австралия, июль 2013 года.
- Брисбен , Австралия, в августе 2014 и 2015 гг.
- Мельбурн , Австралия, в августе 2016 и 2017 гг., и
- Сидней , Австралия, в августе 2018 и 2019 гг.
Django породил группы пользователей и встречи по всему миру, наиболее заметной группой является организация Django Girls , которая возникла в Польше, но теперь проводит мероприятия в 91 стране. [71] [72] [73]
Порты на другие языки
[ редактировать ]Программисты перенесли дизайн механизма шаблонов Django с Python на другие языки, обеспечив достойную кроссплатформенную поддержку. Некоторые из этих вариантов являются более прямыми портами; другие, хотя и вдохновленные Django и сохраняющие его концепции, позволяют себе отклоняться от дизайна Django:
- Жидкость для Рубина [74]
- Шаблон::Swig для Perl [75]
- Twig для PHP и JavaScript [76] [77]
- Джинджа для Python [78]
- ErlyDTL для Эрланга [79]
CMS на базе Django Framework.
[ редактировать ]Django как фреймворк способен создать полноценную CMS , однако существуют специальные проекты CMS, которые основаны на фреймворке Django и расширяют его. Ниже приведен список некоторых наиболее популярных CMS на базе Django:
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Перейти обратно: а б с «Джанго/README» . Гитхаб . Проверено 8 сентября 2020 г.
- ^ «Часто задаваемые вопросы по Джанго» . Проверено 27 марта 2019 г.
- ^ «Выпуск 5.0.7» . 9 июля 2024 г. Проверено 22 июля 2024 г.
- ^ «Загрузка Джанго» . Проверено 7 августа 2020 г.
- ^ «Джанго/ЛИЦЕНЗИЯ» . Гитхаб . Проверено 8 сентября 2020 г.
- ^ «Часто задаваемые вопросы: Общие сведения — Документация Django — Django» . Проверено 30 апреля 2016 г.
- ^ Перейти обратно: а б «Часто задаваемые вопросы: Общие сведения — Документация Django — Django» . Проверено 30 апреля 2016 г.
- ^ Перейти обратно: а б Адриан Головатый, Джейкоб Каплан-Мосс; и др. Книга Джанго . Архивировано из оригинала 2 сентября 2016 года . Проверено 3 сентября 2013 г.
Django достаточно точно следует этому шаблону MVC, поэтому его можно назвать фреймворком MVC.
- ^ «Философия дизайна» . Джанго . Проверено 18 марта 2018 г.
- ^ «На чем основан Instagram: сотни примеров, десятки технологий» . Инстаграм Инжиниринг .
- ^ «Питон» . Сеть разработчиков Mozilla . Архивировано из оригинала 8 февраля 2012 года . Проверено 30 апреля 2016 г.
- ^ Робенолт, Мэтт. «Масштабирование Django до 8 миллиардов просмотров страниц» . blog.disqus.com .
- ^ «DjangoSuccessStoryBitbucket — Джанго» . Архивировано из оригинала 20 апреля 2016 года . Проверено 30 апреля 2016 г.
- ^ «Анти-Facebook: каждый четвертый американский район теперь пользуется этой частной социальной сетью» . Грань . 18 августа 2014 года . Проверено 16 июня 2016 г.
- ^ Деми, Люк (15 августа 2021 г.). «Обуздание грозного стада ⛈ Достижение загрузки процессора на 80% с помощью Django» . Блог Клубного дома . Проверено 16 августа 2021 г.
- ^ Уиллисон, Саймон . «Какова история веб-фреймворка Django? Почему его называют «разработанным в редакции»?» . Кура . Проверено 18 октября 2019 г.
- ^ «Знакомство с Джанго» . Книга Джанго. Архивировано из оригинала 29 июля 2018 года . Проверено 29 июля 2018 г.
- ^ «Рецензия: «Игривая и точная «Мелодичная гитарная музыка»» Адриана Головатого » . Акустическая гитара . Архивировано из оригинала 30 декабря 2023 года.
- ^ «Объявление о создании Django Software Foundation — Блог — Django» . Проверено 30 апреля 2016 г.
- ^ «Безопасность в Джанго» . Проект Джанго . Проверено 25 марта 2013 г.
- ^ Сокол, Джеймс (2012). «Лучшие базовые методы обеспечения безопасности (особенно с Django)» . Проверено 25 марта 2013 г.
- ^ «Что такое повторно используемое приложение? — документация django-reusable-app-docs 0.1.0» . Проверено 30 апреля 2016 г.
- ^ «Список пакетов API пакетов Django» . Проверено 17 апреля 2023 г.
- ^ «Философия дизайна — Документация Django — Django» . Архивировано из оригинала 4 марта 2016 года . Проверено 30 апреля 2016 г.
- ^ «Документация по развертыванию Django» . Архивировано из оригинала 11 января 2012 года.
- ^ «Веб-сервер Cherokee — Поваренная книга по настройке Django — Документация Cherokee» . Проверено 30 апреля 2016 г.
- ^ Как использовать Django с Apache и mod_wsgi. Архивировано 8 марта 2013 г. на Wayback Machine . Официальная документация Django.
- ^ «Документация Джанго» . Документация Джанго . Проверено 9 июня 2023 г.
- ^ ibmdb. «GitHub — ibmdb/python-ibmdb: автоматически экспортируется из code.google.com/p/ibm-db» . Гитхаб . Проверено 30 апреля 2016 г.
- ^ «Архив кода Google — долгосрочное хранилище для хостинга проектов Google Code» . Проверено 30 апреля 2016 г.
- ^ максиробаина. «GitHub — maxirobaina/django-firebird: Серверная часть Firebird SQL для django» . Гитхаб . Проверено 30 апреля 2016 г.
- ^ «Джанго не связан» . Проверено 30 апреля 2016 г.
- ^ пляжная машина. «GitHub — beachmachine/django-jython: серверные части баз данных и расширения для разработки Django поверх Jython» . Гитхаб . Проверено 30 апреля 2016 г.
- ^ «Процесс выпуска Django — Документация Django — Django» . Проверено 30 апреля 2016 г.
- ^ «Скачать Джанго — Джанго» . www.djangoproject.com .
- ^ «Часто задаваемые вопросы: Установка — Документация Django — Django» . docs.djangoproject.com .
- ^ «Представляем Django 0.90» . Блог Джанго. Проверено 2 февраля 2013 г.
- ^ «Выпущен Django 0.91» . Блог Джанго. Проверено 2 февраля 2013 г.
- ^ «Представляем Django 0.95» . Блог Джанго. Проверено 2 февраля 2013 г.
- ^ "Анонсируем Django 0.96!" . Блог Джанго. Проверено 2 февраля 2013 г.
- ^ "Выпущен Django 1.0!" . Блог Джанго. Проверено 2 февраля 2013 г.
- ^ «Выпущен Django 1.1» . Блог Джанго. Проверено 2 февраля 2013 г.
- ^ «Выпущен Django 1.2» . Блог Джанго. Проверено 2 февраля 2013 г.
- ^ «Выпущен Django 1.3» . Блог Джанго. Проверено 2 февраля 2013 г.
- ^ «Выпущен Django 1.4» . Блог Джанго. Проверено 2 февраля 2013 г.
- ^ «Выпущен Django 1.5» Блог Django. Проверено 27 февраля 2013 г.
- ^ «Выпущен Django 1.6» Блог Django. Проверено 6 ноября 2013 г.
- ^ «Выпущен Django 1.7» Блог Django. Проверено 4 сентября 2014 г.
- ^ «Выпущен Django 1.8» Блог Django. Проверено 2 апреля 2015 г.
- ^ «Выпущен Django 1.9» Блог Django. Проверено 1 декабря 2015 г.
- ^ «Выпущен Django 1.10» Блог Django. Проверено 1 августа 2016 г.
- ^ «Выпущен Django 1.11» Блог Django. Проверено 4 апреля 2017 г.
- ^ «Выпущен Django 2.0» Блог Django. Проверено 3 декабря 2017 г.
- ^ «Выпущен Django 2.1» Блог Django. Проверено 2 августа 2018 г.
- ^ Примечания к выпуску Django 2.2 . Проверено 1 июля 2019 г.
- ^ Примечания к выпуску Django 3.0 . Проверено 2 декабря 2019 г.
- ^ Примечания к выпуску Django 3.1 . Проверено 5 августа 2020 г.
- ^ «Примечания к выпуску Django 3.2» . 6 апреля 2021 г. Проверено 7 июня 2021 г.
- ^ «Примечания к выпуску Django 4.0» . 7 декабря 2021 г. Проверено 4 августа 2022 г.
- ^ «Примечания к выпуску Django 4.1» . 3 августа 2022 г. Проверено 4 августа 2022 г.
- ^ «Примечания к выпуску Django 4.2» . Проверено 4 августа 2022 г.
- ^ Серия DjangoCon EU. Архивировано 4 марта 2016 г. на Wayback Machine , Lanyrd.com.
- ^ Американская серия DjangoCon. Архивировано 2 апреля 2016 г. на Wayback Machine , Lanyrd.com.
- ^ «ДжангоКон» . ДжангоКон. Архивировано из оригинала 5 августа 2012 года . Проверено 29 июля 2012 г.
- ^ «ДжангоКон» . ДжангоКон . Проверено 1 декабря 2016 г.
- ^ «ДжангоКон» . ДжангоКон.
- ^ «ДжангоКон» . ДжангоКон.
- ^ «О DjangoCon US 2023» . ДжангоКон в США . Проверено 17 июля 2024 г.
- ^ «О DjangoCon в США» . ДжангоКон в США . Проверено 17 июля 2024 г.
- ^ ДжангоКон AU . Сайт Djangocon.com.au. Проверено 16 декабря 2019 г.
- ^ «Рожденный Лоуренсом Django, который произвел революцию в создании веб-сайтов, отмечает свое 10-летие» . Лоуренс Журнал-Мир . 9 июля 2015 года . Проверено 18 октября 2019 г.
- ^ «Django Girls — начните свой путь с программирования» . Проверено 21 октября 2019 г.
- ^ «Группы Джанго» . Встреча .
- ^ Shopify. «– Жидкий язык шаблонов» . Жидкий язык шаблонов .
- ^ «Template::Swig — интерфейс Perl к движку шаблонов Swig, вдохновленному Django. — Metacpan.org» . Metacpan.org .
- ^ Симфония. «Главная — Twig — Гибкий, быстрый и безопасный механизм шаблонов PHP» . twig.sensiolabs.org . Архивировано из оригинала 9 июля 2017 года . Проверено 10 декабря 2014 г.
- ^ "twigjs/twig.js" . Гитхаб .
- ^ «Добро пожаловать — Jinja2 (движок шаблонов Python)» . jinja.pocoo.org .
- ^ "эрлидтл/эрлидтл" . Гитхаб .
- ^ «django CMS — Управление корпоративным контентом с помощью Django — django CMS» . www.django-cms.org . Проверено 11 ноября 2020 г.
Библиография
[ редактировать ]- Джайсвал, Санджив; Кумар, Ратан (22 июня 2015 г.), Изучение веб-разработки Django (1-е изд.), Packt, стр. 405, ISBN 978-1783984404
- Равиндрун, Арун (31 марта 2015 г.), Шаблоны проектирования и лучшие практики Django (1-е изд.), Packt, стр. 180, ISBN 978-1783986644
- Осборн, Трейси (май 2015 г.), Hello Web App (1-е изд.), Трейси Осборн, стр. 142, ISBN 978-0986365911
- Бендорайтис, Айдас (октябрь 2014 г.), Веб-разработка с помощью кулинарной книги Django (1-е изд.), Packt, стр. 294, ISBN 978-1783286898
- Баумгартнер, Питер; Малет, Янн (2015), High Performance Django (1-е изд.), Lincoln Loop, стр. 184, ISBN 978-1508748120
- Эльман, Джулия; Лавин, Марк (2014), Легкий Джанго (1-е изд.), O'Reilly Media, стр. 246, ISBN 978-1491945940
- Персиваль, Гарри (2014), Разработка через тестирование с использованием Python (1-е изд.), O'Reilly Media, стр. 480, ISBN 978-1449364823 , архивировано из оригинала 16 июля 2017 года , получено 26 октября 2014 года.
Внешние ссылки
[ редактировать ]