![]() |
Статьи | Новости | Контакты | ||||
|
|||||||
|
|||||||
Итак, Django ("Джанго") – это свободный программный каркас (фреймворк) для создания веб-приложений, написанный на Python. Фреймворк примерно соответствует архитектуре MVC ("модель — вид — контроллер"), которой, к примеру, придерживается и Ruby on Rails. Несмотря на то что архитектура "Джанго" похожа на «модель — вид — контроллер», его разработчики заявляют, что не обязуются строго придерживаться какой-то методологии, предпочитая делать то, что кажется правильным именно им. По этой причине то, что называется «контроллер» в классической модели MVC, в "Джанго" называется «вид», а то, что было бы «видом», называется «шаблон». Таким образом, стандартная аббревиатура MVC для "Джанго" преобразовалась в MTV. И никакой рекламы музыкального канала здесь нет. Каждая отдельная часть веб-приложения, созданного с помощью "Джанго", имеет одно назначение и может быть изменено независимо, т. е. без влияния на остальные компоненты Фреймворк изначально создавался для управления несколькими новостными сайтами World Company, базирующейся в Лоуренсе, штат Канзас, США, и был выпущен под BSD лицензией в июле 2005 года. Разработчики: Эдриан Головатый (Adrian Holovaty), Саймон Виллисон (Simon Willison), Джекоб Каплан-Мосс (Jacob Kaplan-Moss) и Вилсон Майнер (Wilson Miner). Именно эти четверо программистов в свое время написали столь популярный ныне фреймворк для управления тремя новостными сайтами. Сам фреймворк назван в честь известного джазового гитариста Джанго Рейнхарда.Изначальное происхождение "Джанго" как средства управления новостной средой очень сильно заметно в его архитектуре – он предоставляет ряд средств, которые помогают в быстрой разработке веб-сайтов информационного характера. К примеру: разработчику не требуется создавать контроллеры и страницы для административной части сайта, в "Джанго" присутствует встроенное приложение для управления содержимым, которое можно легко включить в любой сайт, сделанный на "Джанго", и которое может управлять сразу несколькими ресурсами с одного сервера. Это административное приложение умеет создавать, изменять и удалять любые объекты наполнения ресурса, протоколируя все действия, а также предоставляет интерфейс для управления пользователями и группами (с назначением прав). Кроме этого, в "Джанго" также включены приложения системы комментариев, синдикации в форматах RSS/Atom, перенаправления URL и статических страниц, которыми можно управлять без необходимости написания контроллеров и представления.
Это, конечно же, далеко не полный список возможностей "Джанго", который также включает в себя следующие возможности: Для того чтобы "Джанго" мог применяться на сервере – последний должен соответствовать некоторым требованиям. Изначально фреймворк проектировался для работы под управлением Apache с модулем mod python, а также с использованием PostgreSQL в качестве базы данных, однако к настоящему моменту с включением поддержки WSGI он может работать под управлением FastCGI, mod_wsgi или SCGI на Apache и других серверах типа lighttpd или nginx. Используемые СУБД: MySQL, SQLite и Oracle, также в разработке находится и библиотека для Microsoft SQL Server. Кроме того, в самом "Джанго" есть простейший встроенный веб-сервер, предназначенный специально для разработки. "Джанго" является видным представителем нового поколения сред веб-разработки Основная причина того, что многие сравнивают "Джанго" с Ruby on Rails, заключается в их идеологическом сходстве. Основные принципы "Джанго" следующие:— Принцип DRY: Don’t Repeat Yourself (не повторяйтесь) означает, что нужно стараться исключать дублирование уже введенного в систему знания. Самый простой пример: если был описан тип поля в таблице, то не нужно писать исключительную по творческому заряду вещь: if тип поля EMail:
Фреймворк прилагает максимум усилий для того, чтобы из описанной один раз информации выудить максимум возможного сервиса:
Однако центральная идея фреймворка, как и в Ruby, — это быстрая разработка с минимальным количеством кода. Все следует одной цели – большую часть времени программист должен заниматься не настройкой фреймворка, а написанием кода приложения. Среда предоставляет инфраструктуру разработки для ваших приложений, вы сосредотачиваетесь на создании явного, хорошо поддерживаемого кода без необходимости каждый раз изобретать колесо. Вкратце — этим и занимается "Джанго" Кроме того, "Джанго" поставляется с большим количеством уже написанных вещей, которые в том или ином виде присутствуют в любом веб-приложении:— Сессии. Достаточно подключить в приложение нужный модуль, и в каждом запросе появится request.session, в которую можно класть любые данные, естественно, разные для каждого юзера. — Авторизация, поддерживающая: регистрацию, авторизацию, систему прав на объекты вашей модели данных, генерацию паролей, рассылку сообщений по e-mail. — Кеширование. Для того чтобы не обращаться каждый раз в базу, когда требуются редко меняющиеся данные, вывод можно закешировать. Хоть целиком весь сайт, хоть отдельные страницы, хоть вообще произвольные данные. Причем у системы кеша несколько вариантов, где его хранить: в памяти, в memcached, в директории на диске, в таблице базы данных и так далее. — И многое другое: синдикация, GZip, conditional get, редиректы, статические инфостраницы, валидация форм и многое-многое-многое другое. Причем неоспоримым преимуществом является еще и то, что все эти базовые вещи легко расширяются. Если нужны нестандартные поля для таблицы пользователей, с помощью некоторого подобия наследования можно переделать стандартную таблицу и система авторизации будет ее использовать. Исходники всего фреймворка открыты, и можно в точности увидеть, как все работает, поменять и расширить. Однако самой презентационной особенностью "Джанго", столь сильно ускоряющей разработку ресурсов, является административная панель. Она уже готова к использованию, и разработчику не придется корпеть над ее «обустройством». Нужно лишь указать, какие объекты вы хотите видеть в интерфейсе, и все – "Джанго" автоматически формирует интерфейс, который работает даже лучше, чем выглядит. Ссылки по теме |
Скоро на сайте
|
||||||
Copyright © 2003—2018 Все права защищены При использовании материалов сайта ссылка на hostinfo.ru обязательна |
|||||||