понедельник, 30 марта 2009 г.

Ресурсы о Django

Наверное, очень большая часть информации по поводу Django раскидана по многочисленным блогам разработчиков, которые используют этот фреймворк, но всё же выделю "отдельно стоящие" сайты на эту тему:
  • Родной сайт проекта, самый логичный и самый исчерпывающий источник, там есть вики, документация, исходные коды, ссылки на другие источники и др.;
  • Djangobook - книга, очень хорошее введение, о ней я уже писал;
  • This Week In Django (сокращённо TWiD), авторы которого говорят, что это ресурс обо всём по поводу Django, там же они выкладывают еженедельные подкасты, правда последний почему-то датирован 28-м февраля.
Думаю, что есть ещё интересные ресурсы, буду выкладывать новые ссылки по мере того, как буду их находить. Так что - stay tuned!

воскресенье, 29 марта 2009 г.

Простейший способ поставить Django под Windows

Всё делается элементарно:
  1. заходим на www.instantdjango.com;
  2. скачиваем файлик;
  3. распаковываем его;
  4. начинаем ваять наш супер-пупе-мегасайт на Django
P.S. Сам, правда, пользуюсь линуксом, но, т.к. большая часть народа сидит под ОС из Редмонда, думаю, эта ссылка будет не бесполезна.

суббота, 28 марта 2009 г.

Про Django Book и версии

Для получения обзорных сведений по Django на мой взгляд очень хорошо подходит Django Book от Adrian Holovaty и Jacob Kaplan-Moss, который доступен онлайн.
Правда есть 2 версии книги: первая для версии 0.96 фреймворка и вторая (до конца не завершённая) для 1.0. Я почти дочитал вторую, актуальную версию, но заметил пару проблемок.
Во-первых почему-то уже которую неделю недоступна глава 9.
Во-вторых возник у меня вопрос: как добавлять "кастомные" поля к пользователям (а инфраструктура авторизации и аутентификации уже встроена в Django)? Обнаружил в официальных доках, что делается, как обычно, очень просто, только информация об этом присутствует в версии 1.0 Django Book, а в соответствующей главе 2.0 почему-то нет упоминания об этом.
Однако в целом очень хорошая книжка - читается легко и в итоге получаешь довольно целостную картину устройства фреймворка и того, как писать приложения для него.

пятница, 27 марта 2009 г.

Простота - залог успеха

Всё-таки очень подкупает в Django его компонентность и слабосвязанность различных частей. К примеру в том примерчике, что сейчас пытаюсь сделать, понадобилась мне капча. Стандартной нет с фреймворком, но на сайте нашёл ссылку на Django Simple Captcha (кстати, на Google Code довольно много проектов для Django), решил попробовать:
  • сделал этому проекту svn co ;
  • добавил ссылку к python path;
  • добавил CaptchaField в мою модель;
  • добавил соответствующий url;
  • и всё заработало :)
В общей сложности на решение задачи ушло минут 10-20. С решением её на PHP для варианта, когда нет механизма "из коробки", даже сравнивать не охота :)
В общем - переиспользование рулит не по-детски ибо это сила!

среда, 25 марта 2009 г.

Метод избавления от рутинных задач в Django

Вебразработка очень часто навевает скуку на людей, которые ей занимаются. Ведь, несмотря на всю увлекательность и прелесть интернета, очень много вещей повторяется из раза в раз. Для пользователя это скорей плюс, т.к. не надо каждый раз выяснять, какие ссылки нажимать и т.д. Но вот для программиста это становится очень утомительно, когда приходится писать не первый десяток одинаковых формочек, списков объектов и т.п., которые очень похожи и отличаются лишь небольшими ньюансами. Получается, что разработчик теряет мотивацию, начинает допускать ошибки, ни просто его время расходуется на практически совершенно тупые по своей сути действия. Но прагматичные программисты понимают, что с этим надо бороться и провозглашают одним из основых принципов - DRY, т.е. Don't Repeat Yourself (кстати в вышеуказанной книге этому посвящена глава 2.1 The Evils of Duplication). И авторы Django с этим вполне солидарны.
Скажем, меня всегда утомляло дублирование разных аспектов обработки форм:
  • для начала надо иметь html, который будет их отображать;
  • потом надо обработать информацию, полученную как результат POST-запроса, в частности сделать валидацию;
  • проверенные данные надо "запихать" в БД;
  • если валидация данных не была успешна, то надо отобразить снова ту же форму, сохранив данные, которые были введены пользователем.
Кроме этого можно ещё упомянуть обобщённые виды (generic views), переиспользуемые приложения (как в составе самого фреймворка, так и большое количество сторонних), блоки и тэги для шаблонов и, наверное, это ещё не всё.
Ну и, я уверен, тут не обошлось без влияния The Zen Of Python :)
В целом, если Вы хотите автоматизировать нудные типовые задачи вебразработки и больше времени посвятить сути вашег крутого сайта, то Django может оказать Вам в этом неплохую помощь.

вторник, 24 марта 2009 г.

Русские ресурсы о Django

Ресурсов на русском языке, посвящённых Django, не так уж и много. Есть перевод на русский Djangobook, правда он для старой версиии книги, которая основана Django 0.96. Есть попытка перевести официальную документацию при помощи коллективного разума. Успехов там, правда не так чтобы много...
Есть ещё гугловская группа, не очень активная, несколько блогов и это, наверное, всё.
Можно лишь вспомнить о том, что нормальный программист просто обязан знать английский язык, иначе получать новые знания становится ну очень тяжко.

понедельник, 23 марта 2009 г.

Отличные касты

Не зря говорят "лучше 1 раз увидеть чем 100 раз услышать". Поэтому на меня произвели довольно сильное впечатления скринкасты от Эрика Флоренцано, в которых на живом примере показано создание приложения на Django. Лучше, конечно, не просто смотреть касты, но и опробовать всё это своими руками, включив заодно и моторную память.
Жалко, правда, что серия не совсем закончена: в 13-м эпизоде Эрик упоминает, что в 14-м он расскажет об использовании Fabric для развёртывания приложений на Django, но эпизода пока так и нет.

PHP → Django

По поводу миграции с PHP есть довольно интересный пост. Хочу тоже как автор того поста спустя некоторое время сказать I cannot imagine going back to PHP :)

Лиха беда начало

Итак, PHP за последние месяцы успел очень изрядно утомить своими "прелестями". Посмотрев несколько по сторонам, решил взяться за Django - первые впечатления очень даже положительные.
Сначала, правда, хотелось попробовать решения на Erlang или Haskell, но userbase у них заметно меньше, соответственно подводных камней потенциально заметно больше, а хочется именно рабочее опробированное решение, чтоб не приходилось "на каждый чих" писать свою реализацию по сути дела стандартных вещей.
Интересные ссылки, мысли и прочее, что будет появляться по мере вникания во фремворк, буду публиковать здесь. Хотябы просто для истории, а, может быть, это поможет кому-то ещё.