Интернет вошел в жизнь буквально каждого. Мы постоянно пользуемся самыми разными сайтами и приложениями для самых разных нужд.
Если вспомнить о том, что Python — один из самых популярных языков программирования, нет ничего удивительного в том, что его широко используют и для создания сайтов. В частности, для этой цели был создан Django — один из самых популярных веб-фреймворков Python.
В этой статье мы собрали для вас подборку книг, которые призваны помочь вам изучить Django. Поскольку вообще все книги по программированию очень разные, практически невозможно составить какой-то рейтинг. Вот как определить, что лучше: книга, которая учит делать блоги (с пятью отличными примерами), или книга, где подробно разбирается создание онлайн-магазина? Поэтому мы решили сгруппировать книги по годам выпуска. В эту подборку вошли четыре отличные книги по Django 2019 года выпуска.
Django 2.1. Практика создания веб-сайтов на Python
Автор: Владимир Дронов. Язык: русский.
Одна из немногих книг по веб-фреймворку Django на русском языке. Автор рассматривает этот фреймворк с самого начала (из четырех частей собственно практике посвящена последняя, четвертая).
В первой, вступительной части книги читатель знакомится с фреймворком Django и основными понятиями, которые с ним связаны (проект, отладочный веб-сервер, маршруты, модели, миграции, шаблоны и т. п. вещи).
Далее автор переходит к разбору базовых и расширенных инструментов фреймворка (соответственно 2 и 3 части). Разбираются такие темы как выборка данных, маршрутизация, контроллеры-функции и контроллеры-классы, формы, связанные с моделями, разграничение доступа. В третьем разделе также рассматриваются дополнительные библиотеки, например Django REST framework.
Четвертая часть книги посвящена созданию проекта — полнофункционального сайта электронной доски объявлений.
Должны сказать, что отзывы об этой книге самые противоречивые. Есть восторженные, а есть и критические. В частности, комментаторы жалуются на недостаточно подробные пояснения в собственно практическом разделе.
Читателям в общем понравился широкий охват книги и глубокое раскрытие тем, интересная подача материала. Вместе с тем есть мнение, что всю эту теорию можно почитать в официальной документации. А с другой стороны, книга, в отличие от документации, написана на русском языке и, как отметил один читатель, лучшей книги по Django на русском все равно нет.
Django 2 в примерах
Автор: Антонио Меле. Язык: английский, русский.
Антонио Меле занимается созданием разнообразных приложений на Django с 2006 года. В своей книге он показывает, как можно использовать этот фреймворк на практике (предполагается, что с Python и принципами объектно-ориентированного программирования читатель уже знаком).
Собственно практика начинается с самой первой части. В ней вы знакомитесь с фреймворком Django, создавая свое первое приложение — блог. На этом примере вы научитесь устанавливать Django, создавать проект, проектировать модели, работать с QuerySet-ми, реализовывать обработчики, шаблоны и URL. Во второй и третьей частях вы расширите свой блог и добавите в него более продвинутый функционал.
Второй проект, который вы создадите по этой книге, — социальная сеть. Здесь вы углубитесь в создание профилей пользователей и аутентификацию, создание системы подписок.
Третий проект — создание онлайн-магазина. Вы научитесь определять модели и классы для товаров и корзины, использующие подсистему сессий Django, подключать платежную систему, а также создавать PDF-документы (для выставления счета). На этом примере вы также познакомитесь с реализацией мультиязычности и рекомендательной системы на сайте.
И последний проект, описанный Меле, — платформа для онлайн-обучения. Здесь вы поближе познакомитесь с различными способами наследования моделей и реализуете группы пользователей с разными уровнями доступа к содержимому. Помимо всего прочего, в этом разделе вы также поработаете с Django REST Framework.
В целом читатели восприняли эту книгу очень хорошо. Отмечается лишь, что в русскоязычном издании есть неточности, из-за которых код иногда может не работать, как должно.
Django for APIs
Автор: William S. Vincent. Язык: английский.
Это практическое руководство по созданию современных API при помощи Django и Django REST Framework. Книга подходит как для новичков, которым раньше не приходилось создавать API, так и для профессиональных программистов, желающих побыстрее познакомиться с основами Django и best practices.
Как уже было сказано, это практическое руководство. Вы создадите с нуля три бэкенда: API библиотеки, Todo-приложения и блога. Эти бэкенды будут подключаться к фронтендам, созданным на React JavaScript (подключению, понятное дело, вы тоже научитесь). Автор также уделяет внимание разбору пользовательской аутентификации, добавлению прав пользователей и составлению документации.
Если вам интересна тема создания API на Python, это самая подходящая для вас книга.
Practical Django 2 and Channels 2
Автор: Federico Marani. Язык: английский.
Федерико Морани — разработчик-фрилансер и DevOps-специалист с 15-летним стажем. Django он использует в своей работе с самых первых версий, то есть, на момент написания книги, уже больше 8 лет.
Эта книга — практическое руководство (что и отражено в названии). Теории в ней совсем чуть-чуть, потому что, по мнению автора, теорию лучше всего познавать, наблюдая, как все работает на практике.
Прорабатывая материал книги, вы напишете полноценный e-commerce сайт для придуманной компании BookTime, продающей книги онлайн.
В целом книга Марани, конечно, фокусируется на Django, но им одним дело не ограничится. Также будут использоваться Bootstrap, React, Webpack и React Native.
Что касается, применения самого Django, вы интегрируете и примените на практике популярные библиотеки, поддерживаемые сообществом: Django-extensions, factory_boy, Django Debug Toolbar, Django-tables2, Django-filter, Django Rest Framework и, самое главное, Django Channels.
Django Channels позволяют нам решать задачи, которые не решает стандартный Django, а именно — заниматься событийно-ориентированным программированием. Это наилучшая парадигма, когда в системе предполагается интенсивная загрузка и выгрузка данных, выходящая за пределы обычного HTTP-трафика с его запросами и ответами. Например, это касается чат-систем, потому что люди общаются не по шаблону запрос/ответ.
Книга предназначена для разработчиков, знающих основы Python и желающих научиться создавать с нуля e-commerce-сайты.
А вы читали какую-нибудь из этих книг? Поделитесь своими впечатлениями в комментариях: это поможет вашим коллегам-программистам выбрать подходящую для себя книгу.