23-10-2023
Тип |
веб-фреймворк |
---|---|
Автор |
Lawrence Journal-World |
Написана на | |
Интерфейс | |
Операционная система | |
Языки интерфейса |
русский и ещё 66 языков |
Первый выпуск |
2003[1] |
Последняя версия |
1.4.1 (7 августа 2012) |
Состояние |
активное |
Лицензия | |
Сайт |
www.djangoproject.com |
Django (Джанго) — LJWorld.com, lawrence.com и KUsports.com, принадлежащими компании The World Company (Лоуренс, Канзас (en), США).
Сайт на Django строится из одного или нескольких приложений, которые рекомендуется делать отчуждаемыми и подключаемыми. Это одно из существенных архитектурных отличий этого фреймворка от некоторых других (например, Ruby on Rails).
Также в отличие от других фреймворков обработчики URL в Django конфигурируются явно при помощи регулярных выражений, а не выводятся автоматически из структуры моделей контроллеров.
Для работы с базой данных Django использует собственный ORM, в котором модель данных описывается классами Python, и по ней генерируется схема базы данных.[2]
Содержание |
Разработчики заявляют, что не обязуются строго придерживаться какой бы то ни было методологии в развитии проекта, предпочитая делать то, что кажется им наиболее логичным.[3]
Архитектура Django похожа на «Модель-Представление-Контроллер» (MVC). Контроллер классической модели MVC примерно соответствует уровню, который в Django называется Представление (англ. View), а презентационная логика Вида реализуется в Django уровнем Шаблонов (англ. Template). Из-за этого уровневую архитектуру Django часто называют «Модель-Шаблон-Представление» (MTV).
Первоначальная разработка Django, как средства для работы новостных ресурсов, достаточно сильно отразилась на его архитектуре: он предоставляет ряд средств, которые помогают в быстрой разработке веб-сайтов информационного характера. Так, например, разработчику не требуется создавать контроллеры и страницы для административной части сайта, в Django есть встроенное приложение для управления содержимым, которое можно включить в любой сайт, сделанный на Django, и которое может управлять сразу несколькими сайтами на одном сервере. Административное приложение позволяет создавать, изменять и удалять любые объекты наполнения сайта, протоколируя все совершённые действия, и предоставляет интерфейс для управления пользователями и группам (с пообъектным назначением прав).
В дистрибутив Django также включены приложения для системы комментариев, синдикации RSS и Atom, «статических страниц» (которыми можно управлять без необходимости писать контроллеры и представления), перенаправления URL и другое.
Некоторые возможности Django:
Некоторые компоненты фреймворка между собой связаны слабо, поэтому их можно достаточно просто заменять на аналогичные. Например, вместо встроенных шаблонов можно использовать 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. Но при этом он работает в однопоточном режиме и пригоден только для процесса разработки и отладки приложения.
Платформа Google App Engine имеет в своём составе ограниченную версию Django. [11]
Существует версия Django-nonrel адаптированная для работы с не реляционными хранилищами данных, которая позволяет полноценно (насколько это возможно технически) использовать Django на платформе django-dbindexer позволяет даже эмулировать JOIN в нереляционных хранилищах данных.
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 |
Boa Constructor • Eclipse+PyDev • Eric • Geany • IDLE • Komodo • NetBeans • PyCharm • PyScripter • SPE |
Библиотеки |
Beautiful Soup • NLTK • NumPy • PIL • Pygame • PyGTK • Pyparsing • PyQt • SciPy • SQLAlchemy |
Другое |
Django.