Django — свободный программный каркас для веб-приложений на языке Python, использующий шаблон проектирования MVC. Сайт на Django строится из одного или нескольких приложений, которые рекомендуется делать отчуждаемыми и подключаемыми. Это одно из существенных архитектурных отличий этого каркаса от некоторых других (например, Ruby on Rails).
Один из основных принципов каркаса — DRY. Для работы с базой данных Django использует собственный ORM, в котором модель данных описывается классами Python, и по ней генерируется схема базы данных.
Возможности Django:
ORM, API доступа к БД с поддержкой транзакцийвстроенный интерфейс администратора, с уже имеющимися переводами на многие языкидиспетчер URL на основе регулярных выраженийрасширяемая система шаблонов с тегами и наследованиемсистема кешированияинтернационализацияподключаемая архитектура приложений, которые можно устанавливать на любые Django-сайты«generic views» — шаблоны функций контроллеровавторизация и аутентификация, подключение внешних модулей аутентификации: LDAP, OpenID и проч.система фильтров («middleware») для построения дополнительных обработчиков запросов, как например включённые в дистрибутив фильтры для кеширования, сжатия, нормализации URL и поддержки анонимных сессийбиблиотека для работы с формами (наследование, построение форм по существующей модели БД)встроенная автоматическая документация по тегам шаблонов и моделям данных, доступная через административное приложениеНекоторые компоненты фреймворка между собой связаны слабо, поэтому их можно достаточно просто заменять на аналогичные.
Помимо возможностей, встроенных в ядро фреймворка, существуют пакеты, расширяющие его возможности. Возможности, предоставляемые пакетами, а также полный перечень пакетов удобно отслеживать через специальный ресурс —
djangopackages. com