Категории программ

Новые программы

Django

Октябрь 30, 2014 0

Django (Джанго) — свободный программный каркас для веб-приложений на языке Python, использующий шаблон проектирования MVC (Model-View-Controller). Проект поддерживается организацией Django Software Foundation.

Сайт на фреймворке Django строится из одного или нескольких приложений, которые рекомендуется делать отчуждаемыми и подключаемыми. Это одно из существенных архитектурных отличий этого фреймворка от некоторых других (например, Ruby on Rails). Один из основных принципов фреймворка — DRY (англ. Don’t repeat yourself)

Также, в отличие от других фреймворков, обработчики URL в Django конфигурируются явно при помощи регулярных выражений, а не выводятся автоматически из структуры моделей контроллеров.

Для работы с базой данных Django использует собственный ORM, в котором модель данных описывается классами Python, и по ней генерируется схема базы данных.

Веб-фреймворк Django используется в таких крупных и известных сайтах, как Instagram, Disqus, Mozilla, The Washington Times, Pinterest и др..

Также Django используется в качестве веб-компонента в различных проектах, таких как Graphite — система построения графиков и мониторинга, FreeNAS — свободная реализация системы хранения и обмена файлами и др..

На базе Django разработан ряд готовых решений со свободной лицензией, среди которых интернет-магазины, системы управления содержанием, а также более узконаправленные проекты.

Архитектура Django

Архитектура фреймворка Django похожа на «Модель-Представление-Контроллер» (MVC). Контроллер классической модели MVC примерно соответствует уровню, который в Django называется Представление (англ. View), а презентационная логика Представления реализуется в Django уровнем Шаблонов (англ. Template). Из-за этого уровневую архитектуру Django часто называют «Модель-Шаблон-Представление» (MTV).

Первоначальная разработка фреймворка Django, как средства для работы новостных ресурсов, достаточно сильно отразилась на его архитектуре: он предоставляет ряд средств, которые помогают в быстрой разработке веб-сайтов информационного характера. Так, например, разработчику не требуется создавать контроллеры и страницы для административной части сайта, в фреймворке Django есть встроенное приложение для управления содержимым, которое можно включить в любой сайт, сделанный на Django, и которое может управлять сразу несколькими сайтами на одном сервере. Административное приложение позволяет создавать, изменять и удалять любые объекты наполнения сайта, протоколируя все совершённые действия, и предоставляет интерфейс для управления пользователями и группами (с пообъектным назначением прав).

В дистрибутив фреймворка Django также включены приложения для системы комментариев, синдикации RSS и Atom, «статических страниц» (которыми можно управлять без необходимости писать контроллеры и представления), перенаправления URL и другое.

Некоторые возможности Django

LDAP, OpenID и пр.;

Некоторые компоненты фреймворка между собой связаны слабо, поэтому их можно достаточно просто заменять на аналогичные. Например, вместо встроенных шаблонов можно использовать Mako или Jinja.

В то же время заменять ряд компонентов (например, ORM) довольно сложно.

Помимо возможностей, встроенных в ядро фреймворка, существуют пакеты, расширяющие его возможности. Возможности, предоставляемые пакетами, а также полный перечень пакетов удобно отслеживать через специальный ресурс — www.djangopackages.com.

Конфигурация сервера для Django

Django проектировался для работы под управлением Apache HTTP Server с модулем mod_python и с использованием PostgreSQL в качестве базы данных.

С включением поддержки WSGI (Web Server Gateway Interface), Django может работать под управлением FastCGI, mod_wsgi или SCGI (Simple Common Gateway Interface) на Apache HTTP Server и других серверах (lighttpd, nginx, …).

В настоящее время, помимо базы данных PostgreSQL, Django может работать с другими СУБД: MySQL, SQLite, Microsoft SQL Server, DB2, Firebird, SQL Anywhere и Oracle.

В составе фреймворка Django присутствует собственный веб-сервер для разработки. Сервер автоматически определяет изменения в файлах исходного кода проекта и перезапускается, что ускоряет процесс разработки на Python. Но при этом он работает в однопоточном режиме и пригоден только для процесса разработки и отладки приложения.

Хостинг для Django

Django можно развернуть на PaaS-сервисе RedHat OpenShift, в том числе и бесплатно.

Сравнительные данные по хостингу Django можно узнать на Django-wiki

Django на хостинге Google

Google App Engine Python позволяет использовать для работы любую версию Django.

Существуют некоторые особенности при работе с Django в Google App Engine Python 2.7:

Это в свою очередь делает ограниченной работу определённых функций фреймворка, в частности, встроенного административного интерфейса.

Это позволяет использовать все возможности фреймворка, как и при работе с обычными реляционными базами.

Существует Community-версия Django-nonrel, адаптированная для работы с нереляционными хранилищами данных, которая позволяет полноценно (насколько это возможно технически) использовать Django на платформе Google App Engine. А подключаемое приложение django-dbindexer позволяет даже эмулировать JOIN в нереляционных хранилищах данных.

Django

Ссылки

Сайт Django

Скачать Django

Веб-разработчику , Веб-фреймворки , Компоненты и библиотеки , Разработчику , Средства разработки

Оставить комментарий

*