Недавно вышла новая книга про Django - фреймворк для веб-приложений -, которая называется «Django. Подробное руководство». Это уже вторая книга про Django на русском языке, про первую я
уже писал.
«Django. Подробное руководство» написана двумя авторами самого фреймворка (А. Головатый и Д. Каплан-Мосс), так что эту книгу можно считать источником из первых рук. Если прошлогодняя книга (авторы Дж. Форсье, П. Биссекс и У. Чан) это скорее руководство для ознакомления с Django, то новая книга описывает возможности фреймворка намного подробнее. Авторы во введении признались, что их цель - сделать читателей экспертами по Django.
Перед чтением этой книги уже желательно знать Python. Если у Форсье и др. была глава, посвященная основным конструкциям языка, то здесь отдельно про сам Python ничего не написано, что, на мой взгляд, правильно. Авторы, правда, в первых главах кратенько (одно-два предложения) описывают, что делают некоторые конструкции языка, когда те встречаются в коде программы, но это все не серьезно.
Книга имеет интересную структуру, она разбита на три части и приложения. Первая часть посвящена основам Django. Здесь описываются главные составные элементы фреймворка: установка Django и использование встроенного сервера, как происходит конфигурирование URL, шаблоны, модели, формы, описан административный интерфейс.
Первая часть раскрывает все то, что написано в книге Форсье и co. Дело в том, что предыдущая книга содержала в себе много больших законченных примеров, а в этой книге все примеры написаны как можно более сжато (максимум полстраницы), чтобы показать какую-то отдельную деталь Django, многостраничных приложений здесь нет.
Вторая часть книги уже более подробно описывает те же элементы, что были описаны ранее (кроме административного интефейса), сюда же включены главы про обобщенные представления и развертывание Django на реальном сервере. Но про настройку Apache написано скудно, предыдущая книга в этой части мне нравится больше. Зато здесь авторы немного коснулись темы масштабирования, когда надо, чтобы сайт для распределения нагрузки работал на нескольких серверах.
Третья часть посвящена отдельным возможностям Django, перечислю названия некоторых глав: «создание содержимого в формате, отличном от HTML», «Сеансы, пользователи и регистрация», «Кэширование», описана библиотека django.contrib, рассказано про процессоры, интернационализацию и безопасность.
После этого идут приложения, занимающие четверть книги. Приложения считаются справочным материалом, но как минимум по диагонали почитать их стоит, а некоторые приложения стоит читать полностью. В первом приложении еще более подробно описываются модели, как они работают внутри. Во втором - еще более подробно описывается работа с базами данных средствами Django, описаны Q-объекты. Следующие приложения описывают все обобщенные представления и их параметры, настройки Django, встроенные шаблонные теги и фильтры, django-admin.py и объекты запроса-ответа.
Книжка оказалась очень хорошей, читается легко, язык описания легкий. Вот для примера цитата: «PostgreSQL строго контролирует типы данных и в этом случае возбудит исключение; MySQL может принять пустую строку или отвергнуть в зависимости от версии, времени суток и фазы Луны».
Авторы начинают описывать каждый элемент Django сначала поверхностно, постепенно углубляясь в детали, причем, постоянно пишут как это работает «под капотом».
У книги есть онлайновая версия на английском языке, расположенная по адресу
djangobook.com. Но не понятно насколько онлайновая версия соответствует бумажной. На сайте выложена второе издание книги, бумажная книга тоже считается вторым изданием, в аннотации бумажной книги написано, что она посвящена Django 1.1, но на главной странице сайта упоминается только Django 1.0, хотя, судя по описанию административного интерфейса, и на сайте, и в книге используется Django 1.1.
PS. Не спрашивайте меня, пожалуйста, видел ли я электронную версию этой книги (в смысле русской версии), пока нет нормальных читалок электронных книг с размером экрана 9″, технические книги приходится читать так же, как их читали наши прапрадеды, то есть с бумаги.
Эта запись у меня в блоге