Django
Материал из Википедии — свободной энциклопедии
| Django | |
|
Логотип
|
|
| Тип | веб-фреймворк |
| Разработчик | Lawrence Journal-World |
| Написана на | Python |
| ОС | Кроссплатформенный |
| Версия | 1.0.2 — 19 ноября 2008 |
| Лицензия | BSD |
| Сайт | djangoproject.com |
Django (Джанго) — свободный фреймворк для веб-приложений на языке Python. Изначально проект был создан для управления новостными сайтами LJWorld.com, lawrence.com и KUsports.com, принадлежащими компании The World Company (Лоуренс, Канзас (en), США).
Сайт на Django строится из одного или нескольких приложений, которые рекомендуется делать отчуждаемыми и подключаемыми. Это одно из существенных архитектурных отличий этого фреймворка от некоторых других (например Ruby on Rails).
Также в отличие от других фреймворков обработчики URL в Django конфигурируются явно при помощи регулярных выражений, а не выводятся автоматически из структуры моделей контроллеров.
Для работы с базой данных Django использует собственный ORM, в котором модель данных описывается классами Python, и по ней генерируется схема базы данных.[1]
Содержание |
[править] Разработчики
- Адриан Головатый (англ. Adrian Holovaty),
- Саймон Виллисон (англ. Simon Willison),
- Джекоб Каплан-Мосс (англ. Jacob Kaplan-Moss),
- Вилсон Майнер (англ. Wilson Miner)
Разработчики заявляют, что не обязуются строго придерживаться какой бы то ни было методологии в развитии проекта, предпочитая делать то, что кажется им наиболее логичным.[2]
[править] Архитектура
Архитектура Django похожа на «Модель-Вид-Контроллер» (MVC). Контроллер классической модели MVC примерно соответствует уровню, который в Django называется Вид (англ. View), а презентационная логика Вида реализуется в Django уровнем Шаблонов (англ. Template). Из-за этого уровневую архитектуру Django часто называют «Модель-Шаблон-Вид» (MTV).
Первоначальная разработка Django, как средства для работы новостных ресурсов, достаточно сильно отразилась на его архитектуре: он предоставляет ряд средств, которые помогают в быстрой разработке веб-сайтов информационного характера. Так, например, разработчику не требуется создавать контроллеры и страницы для административной части сайта, в Django есть встроенное приложение для управления содержимым, которое можно включить в любой сайт, сделанный на Django, и которое может управлять сразу несколькими сайтами на одном сервере. Административное приложение позволяет создавать, изменять и удалять любые объекты наполнения сайта, протоколируя все совершенные действия, и предоставляет интерфейс для управления пользователями и группам (с пообъектным назначением прав).
В дистрибутив Django также включены приложения для системы комментариев, синдикации RSS и Atom, «статических страниц» (которыми можно управлять без необходимости писать контроллеры и представления), перенаправления URL и другое.
[править] Возможности
Некоторые возможности Django:
- ORM, API доступа к БД с поддержкой транзакций[3]
- встроенный интерфейс администратора,[4] с уже имеющимися переводами на многие языки
- диспетчер URL на основе регулярных выражений[5]
- расширяемая система шаблонов с тегами и наследованием[6]
- система кеширования[7]
- интернационализация[8][9]
- подключаемая архитектура приложений, которые можно устанавливать на любые Django-сайты
- «generic views» — шаблоны функций контроллеров
- авторизация и аутентификация, подключение внешних модулей аутентификации: LDAP, OpenID и проч.
- система фильтров («middleware») для построения дополнительных обработчиков запросов, как например включённые в дистрибутив фильтры для кеширования, сжатия, нормализации URL и поддержки анонимных сессий
- библиотека для работы с формами (наследование, построение форм по существующей модели БД)
- встроенная автоматическая документация по тегам шаблонов и моделям данных, доступная через административное приложение
Различные компоненты фреймворка между собой связаны слабо, поэтому достаточно просто любую часть заменить на аналогичную. Например, вместо встроенных шаблонов можно использовать Mako или Jinja.
[править] Конфигурация сервера
Django проектировался для работы под управлением Apache с модулем mod python и с использованием PostgreSQL в качестве базы данных.
С включением поддержки WSGI, Django может работать под управлением FastCGI, mod_wsgi или SCGI на Apache и других серверах (lighttpd, nginx,…) и подключаться к СУБД MySQL, SQLite и Oracle.
В составе Django присутствует собственный веб-сервер для разработки. Сервер автоматически определяет изменения в файлах исходного кода проекта и перезапускается, что очень ускоряет процесс разработки на Python. Но при этом он работает в однопоточном режиме и пригоден только для процесса разработки и отладки приложения.
[править] Django в хостинге Google
Платформа Google App Engine имеет в своём составе ограниченную версию Django. [10]
| Этот раздел не завершён. Вы поможете проекту, исправив и дополнив его. |
[править] Ссылки
- djangoproject.com(англ.)
- Репозиторий кода и wiki Django(англ.)
- Примеры кода для решения частых задач (англ.)
- Каталог сайтов, сделанных на Django(англ.)
- Поисковая система по Django-ресурсам(рус.)
- Список рассылки по Django(англ.)
- Список рассылки по Django(рус.)
- Форум по Django
- Другой форум по Django
- Блог Александра Кошелева про Django
- Блог Григория Петухова о Django
- Свободная книга о Django,(англ.) Русский перевод Djangobook
- techwork.ru (Google App Engine)
- djangoGigs.com(англ.)
- online — перевод на русский официальной документации по Django (рус.)
- Django в wikibooks
[править] Примечания
- ↑ Маниакальный Веблог (Блог Ивана Сагалаева)
- ↑ Django FAQ
- ↑ DjangoBook. Глава 5. Работа с базой данных: Модели
- ↑ DjangoBook. Глава 6. Интерфейс администратора Django
- ↑ DjangoBook. Глава 3. Основы динамических страниц
- ↑ DjangoBook. Глава 10. Расширения для шаблонной системы
- ↑ DjangoBook. Глава 13. Кэширование
- ↑ DjangoBook. Глава 18. Интернационализация
- ↑ Django i18n statistics
- ↑ Мэт Браун. Использование специального каркаса для интеграции Google App Engine с Django Май 2008


