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


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] Адриан Головатый — цыганский джазовый гитарист и большой поклонник Джанго Рейнхардта. [ нужна ссылка ]

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

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


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