- Django
-
Django Тип веб-фреймворк
Автор Lawrence Journal-World
Написана на Интерфейс Операционная система Языки интерфейса русский и ещё 66 языков
Первый выпуск 2003[1]
Последняя версия 1.4.3 (17 октября 2012)
Состояние активное
Лицензия Сайт Django (Джанго) — свободный фреймворк для веб-приложений на языке Python. Изначально проект был создан для управления новостными сайтами LJWorld.com, lawrence.com и KUsports.com, принадлежащими компании The World Company (Лоуренс, Канзас (en), США).
Сайт на Django строится из одного или нескольких приложений, которые рекомендуется делать отчуждаемыми и подключаемыми. Это одно из существенных архитектурных отличий этого фреймворка от некоторых других (например, Ruby on Rails).
Также в отличие от других фреймворков обработчики URL в Django конфигурируются явно при помощи регулярных выражений, а не выводятся автоматически из структуры моделей контроллеров.
Для работы с базой данных Django использует собственный ORM, в котором модель данных описывается классами Python, и по ней генерируется схема базы данных.[2]
Содержание
Разработчики
- Адриан Головатый (англ. Adrian Holovaty),
- Саймон Виллисон (англ. Simon Willison),
- Джекоб Каплан-Мосс (англ. Jacob Kaplan-Moss),
- Вилсон Майнер (англ. Wilson Miner)
Разработчики заявляют, что не обязуются строго придерживаться какой бы то ни было методологии в развитии проекта, предпочитая делать то, что кажется им наиболее логичным.[3]
Архитектура
Архитектура Django похожа на «Модель-Представление-Контроллер» (MVC). Контроллер классической модели MVC примерно соответствует уровню, который в Django называется Представление (англ. View), а презентационная логика Представления реализуется в Django уровнем Шаблонов (англ. Template). Из-за этого уровневую архитектуру Django часто называют «Модель-Шаблон-Представление» (MTV).
Первоначальная разработка Django, как средства для работы новостных ресурсов, достаточно сильно отразилась на его архитектуре: он предоставляет ряд средств, которые помогают в быстрой разработке веб-сайтов информационного характера. Так, например, разработчику не требуется создавать контроллеры и страницы для административной части сайта, в Django есть встроенное приложение для управления содержимым, которое можно включить в любой сайт, сделанный на Django, и которое может управлять сразу несколькими сайтами на одном сервере. Административное приложение позволяет создавать, изменять и удалять любые объекты наполнения сайта, протоколируя все совершённые действия, и предоставляет интерфейс для управления пользователями и группам (с пообъектным назначением прав).
В дистрибутив Django также включены приложения для системы комментариев, синдикации RSS и Atom, «статических страниц» (которыми можно управлять без необходимости писать контроллеры и представления), перенаправления URL и другое.
Возможности
Некоторые возможности Django:
- ORM, API доступа к БД с поддержкой транзакций[4]
- встроенный интерфейс администратора,[5] с уже имеющимися переводами на многие языки
- диспетчер URL на основе регулярных выражений[6]
- расширяемая система шаблонов с тегами и наследованием[7]
- система кеширования[8]
- интернационализация[9]
- подключаемая архитектура приложений, которые можно устанавливать на любые Django-сайты
- «generic views» — шаблоны функций контроллеров
- авторизация и аутентификация, подключение внешних модулей аутентификации: LDAP, OpenID и проч.
- система фильтров («middleware») для построения дополнительных обработчиков запросов, как например включённые в дистрибутив фильтры для кеширования, сжатия, нормализации URL и поддержки анонимных сессий
- библиотека для работы с формами (наследование, построение форм по существующей модели БД)
- встроенная автоматическая документация по тегам шаблонов и моделям данных, доступная через административное приложение
Некоторые компоненты фреймворка между собой связаны слабо, поэтому их можно достаточно просто заменять на аналогичные. Например, вместо встроенных шаблонов можно использовать Mako или Jinja.
В то же время заменять ряд компонентов (например, ORM) довольно сложно.
Решения
На базе Django разработан ряд готовых решений со свободной лицензией[10], среди которых интернет-магазины, системы управления содержанием, а также более узконаправленные проекты.
Конфигурация сервера
Django проектировался для работы под управлением Apache с модулем mod python и с использованием PostgreSQL в качестве базы данных.
С включением поддержки WSGI, Django может работать под управлением FastCGI, mod wsgi или SCGI на Apache и других серверах (lighttpd, nginx,…).
В настоящее время, помимо базы данных PostgreSQL, Django может работать с другими СУБД: MySQL, SQLite, Microsoft SQL Server, DB2, Firebird, SQL Anywhere и Oracle.
В составе Django присутствует собственный веб-сервер для разработки. Сервер автоматически определяет изменения в файлах исходного кода проекта и перезапускается, что ускоряет процесс разработки на Python. Но при этом он работает в однопоточном режиме и пригоден только для процесса разработки и отладки приложения.
Django на хостинге Google
Платформа Google App Engine имеет в своём составе ограниченную версию Django. [11]
Этот раздел не завершён. Вы поможете проекту, исправив и дополнив его.Существует версия Django-nonrel адаптированная для работы с не реляционными хранилищами данных, которая позволяет полноценно (насколько это возможно технически) использовать Django на платформе Google App Engine. А подключаемое приложение django-dbindexer позволяет даже эмулировать JOIN в нереляционных хранилищах данных.
Хостинг для Django
На данный момент Django только набирает обороты и хостингов с его специализированной поддержкой не так много. Среди существующих предложений можно выделить webfaction.com, Hosting4Django.net и RX-NAME.ua, как русскоязычный хостинг.
Основные крупные хостинг-провайдеры
Хостинг-провайдер Локация Тип хостинга RX-NAME.ua Украина Обычный хостинг
Django подключается как WCGI
webfaction.com США По запросу в поддержку Hosting4Django.net Германия Автомат TimeWeb.ru Россия Django подключается как WSGI Django в Викиучебнике? Примечания
- ↑ См. файл AUTHORS в архиве с исходными кодами Django.
- ↑ Маниакальный Веблог (Блог Ивана Сагалаева)
- ↑ Django FAQ
- ↑ DjangoBook. Глава 5. Работа с базой данных: Модели
- ↑ DjangoBook. Глава 6. Интерфейс администратора Django
- ↑ DjangoBook. Глава 3. Основы динамических страниц
- ↑ DjangoBook. Глава 10. Расширения для шаблонной системы
- ↑ DjangoBook. Глава 13. Кэширование
- ↑ DjangoBook. Глава 18. Интернационализация
- ↑ Open-Source Django projects
- ↑ Мэт Браун. Использование специального каркаса для интеграции Google App Engine с Django Май 2008
Литература
- Головатый А., Каплан-Мосс Дж. Django. Подробное руководство = Django. The definitive guide to / пер. с англ.. — СПб.: Символ-Плюс, 2010. — 560 с. — (High Tech). — ISBN 978-5-93286-187-5
- У. Чан, П. Биссекс, Д. Форсье Django. Разработка веб-приложений на Python = Python Web Development with Django / пер. с англ. А. Киселёв. — СПб.: Символ-Плюс, 2009. — 456 с. — (High Tech). — ISBN 978-5-93286-167-7
Ссылки
- Официальный сайт Django. (англ.)
- Wiki и сообщения об ошибках. (англ.)
- Проект django на сайте GitHub
- Свободная книга о Django. (англ.) (русский перевод, в ePub).
- Хостинг для Django. (рус.)
Python Люди Реализации ChinesePython • CLPython • CPython • JPype • Jython • IronPython • PyPy • Python for S60 • Psyco • Stackless Python • Unladen Swallow
Фреймворки CherryPy • Django • Flask • GAE framework • Pylons • Pyramid • Quixote • TurboGears • Twisted • Web2py • Zope
IDE Библиотеки Другое Веб-фреймворки ASP.NET DotNetNuke • ASP.NET MVC • MonoRail
ColdFusion ColdSpring • Fusebox • Mach-II • Model-Glue
Java Apache (Cocoon • Struts • Velocity • WebWork 2) • AppFuse • Aranea • Eclipse • Facelets • Flexive • FreeMarker • Google Web Toolkit • Grails • Hamlets • ItsNat • JavaServer Faces • Jspx • JBoss Seam • jZeno • Makumba • OpenLaszlo • OpenXava • Reasonable Server Faces (RSF) • Restlet • RichFaces • RIFE • Shale • SmartClient • Spring • Stripes • Tapestry • ThinWire • Vaadin • WebMacro • WebWork • WebObjects • Wicket • ZK
JavaScript node.js • AJILE • Clean AJAX • Dojo Toolkit • Echo • Ext JS • jQuery • jMaki • Microsoft AJAX Library • MochiKit • MooTools • Prototype • qooxdoo • Rialto Toolkit • Rico • script.aculo.us • SmartClient • Spry • SproutCore • Yahoo! UI Library • Underscore • PhoneGap
Perl Catalyst • Interchange • Titanium • Maypole • HTML:Mason
PHP Python CherryPy • Django • GAE framework • Karrigell • Nevow • Porcupine • Pylons • Pyramid • Spyce • TurboGears • Twisted • Tornado • Webware • Zope
Ruby Camping • Nitro • IOWA • Ramaze • Cerise • Merb • Ruby on Rails • Sinatra • Padrino
Прочие
языкиAlpha Five • Fusebox (ColdFusion • PHP) • Helma Object Publisher (Server-side) • Lift (Scala) • Magic (Scheme) • OpenACS (Tcl) • Seaside (Smalltalk) • UnCommon Web (Common Lisp) • Yaws (Erlang) • Oracle Application Express (PL/SQL)
Категории:- Программное обеспечение по алфавиту
- Свободные библиотеки программ
- Свободное программное обеспечение, написанное на Python
- Библиотеки Python
- Каркасы веб-приложений на Python
- Программное обеспечение с лицензией BSD
- Кроссплатформенное программное обеспечение
- Свободное серверное программное обеспечение
- Появились в 2003 году
Wikimedia Foundation. 2010.