Django
Материал из Википедии — свободной энциклопедии
Логотип
|
|
Тип | программный каркас для создания веб-приложений |
Разработчик | Lawrence Journal-World |
ОС | Linux, Windows, Mac OS X, FreeBSD и др. |
Текущая версия | 0.96 — 23 марта 2007 |
Лицензия | Лицензия BSD |
Сайт | www.djangoproject.com |
Django (Джанго) — это программный каркас для создания веб-приложений, написанный на языке Python и построенный на принципах открытого ПО. Он примерно соответствует архитектуре «Модель-Вид-Контроллер» (MVC). Изначально был создан для управления несколькими новостными сайтами World Company (Лоуренс, штат Канзас, США) и был публично выпущен под лицензией BSD в июле 2005. Текущая стабильная версия Django — 0.96. Обратная совместимость кода не гарантируется до версии 1.0, которая вскоре готовится к выпуску. На настоящий момент стабильно 90% публичного кода.
[править] Описание и возможности
Как и Ruby on Rails — другой популярный открытый программный каркас — Django использовался в рабочем режиме в World Company в течение некоторого времени перед своим выпуском. Его разработчики — Адриан Головатый (англ. Adrian Holovaty), Саймон Виллисон (англ. Simon Willison), Джекоб Каплан-Мосс (англ. Jacob Kaplan-Moss) и Вилсон Майнер (англ. Wilson Miner). Он использовался для управления тремя новостными сайтами: The Lawrence Journal-World, lawrence.com and KUsports.com. Django назван в честь джазового гитариста Джанго Рейнхардта.
Происхождение Django в новостной среде сильно заметно в его архитектуре: он предоставляет ряд средств, которые помогают в быстрой разработке веб-сайтов информационного характера. Так например разработчику не требуется создавать контроллеры и страницы для административной части сайта, в Django есть встроенное приложение для управления содержимым, которое можно включить в любой сайт, сделанный на Django, и которое может управлять сразу несколькими сайтами на одном сервере. Административное приложение умеет создавать, изменять и удалять любые объекты наполнения сайта, протоколируя все совершенные действия, и предоставляет интерфейс для управления пользователями и группам (с пообъектным назначением прав).
В дистрибутив Django также включены приложения для системы комментариев, синдикации в форматах RSS и Atom, «статических страниц» (которыми можно управлять без необходимости писать контроллеры и представления), перенаправления URL.
Другие возможности Django:
- слой ORM
- подключаемая архитектура приложений, которые можно устанавливать на любые Django-сайты
- полноценный API доступа к БД с поддержкой транзакций.
- встроенная система «generic views» — шаблонных функций контроллеров, которые избавляют от написания их вручную для некоторых частых задач
- авторизация пользователей с возможностью подключения внешних модулей авторизации (например LDAP, OpenID)
- расширяемая система шаблонов с тегами и наследованием
- диспетчер URL на регулярных выражениях
- система фильтров («middleware») для построения дополнительных обработчиков запросов, как например включенные в дистрибутив фильтры для кеширования, сжатия, нормализации URL и поддержки анонимных сессий
- поддержка многоязычных и интернациональных приложений с уже имеющимися переводами административного приложения на многие языки
- встроенная автоматическая документация по тегам шаблонов и моделям данных, доступная через административное приложение
Несмотря на то, что архитектура Django похожа на «Модель-Вид-Контроллер», его разработчики заявляют, что не обязуются строго придерживаться какой бы то ни было методологии, предпочитая делать то, «что кажется правильным» именно им. Так например то, что называется «контроллер» в классической модели MVC, в Django называется «вид» (англ. view), а то, что было бы «видом», называется «шаблон» (англ. template).
[править] Конфигурация сервера
Изначально Django проектировался для работы под управлением Apache с модулем mod python и с использованием PostgreSQL в качестве базы данных. Сейчас, с включением поддержки WSGI, он может работать под управлением FastCGI или SCGI на Apache и других серверах (в частности, lighttpd) и подключаться к СУБД MySQL и SQLite. Сейчас в разработке находятся библиотеки для Microsoft SQL Server и Oracle. В Django также есть свой встроенный простой веб-сервер специально для разработки.