Django
| Django | |
| Логотип
| |
| Тип | веб-фреймворк |
| Разработчик | Lawrence Journal-World |
| Написана на | Python |
| ОС | Кроссплатформенный |
| Версия | 1.1.1 (9 октября 2009) |
| Лицензия | 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 разработан ряд готовых решений со свободной лицензией [10], среди которых интернет-магазины, системы управления содержимым, а также более узконаправленные проекты.
Конфигурация сервера
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. [11]
| Этот раздел не завершён. Вы поможете проекту, исправив и дополнив его. |
| Файл:Wikibooks-logo.svg | Django в Викиучебнике? |
|---|
Ссылки
- djangoproject.com(англ.) — официальный сайт.
- Репозиторий кода и wiki Django(англ.)
Документация, книги
- Свободная книга о Django,(англ.) Русский перевод Djangobook (рус.)
- techwork.ru (Google App Engine)
- online — перевод на русский официальной документации по Django (рус.)
Сайты сообщества
- Примеры кода для решения частых задач (англ.)
- Каталог сайтов, сделанных на Django(англ.)
- Django People(англ.)
- djangoGigs.com(англ.)
- Поисковая система по Django-ресурсам(рус.)
Форумы, списки рассылок
- Официальный список рассылки для пользователей(англ.)
- Русскоязычный список рассылки(рус.)
- Форум на Python.Su
- Форум на SoftwareManiacs.Org
- ЖЖ-сообщество
Примечания
- ↑ Маниакальный Веблог (Блог Ивана Сагалаева)
- ↑ Django FAQ
- ↑ DjangoBook. Глава 5. Работа с базой данных: Модели
- ↑ DjangoBook. Глава 6. Интерфейс администратора Django
- ↑ DjangoBook. Глава 3. Основы динамических страниц
- ↑ DjangoBook. Глава 10. Расширения для шаблонной системы
- ↑ DjangoBook. Глава 13. Кэширование
- ↑ DjangoBook. Глава 18. Интернационализация
- ↑ Django i18n statistics
- ↑ Open-Source Django projects
- ↑ Мэт Браун. Использование специального каркаса для интеграции Google App Engine с Django Май 2008
ar:جانغو (إطار عمل وب) cs:Django de:Django (Framework) en:Django (web framework) es:Django fr:Django (framework) it:Django web framework ja:Django ko:장고 (웹 프레임워크) lv:Django (tīmekļa ietvars) nl:Django (framework) no:Django pl:Django pt:Django (framework web) sv:Django tr:Django (Web Çatısı) uk:Django zh:Django
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....