Книга «Разработка веб-приложений с использованием Flask на языке Python»

Если говорить о веб-разработке на Python, то в первую очередь вспоминается веб-фреймворк Django, на основе которого создано огромное количество как небольших сайтов, а также таких монстров как Instagram, сайт Mozilla, Bitbucket и множество других. Django хорош тем, что к нему «прилагаются батарейки», т.е. в библиотеку входит большое количество инструментов, которые могут понадобиться для построения движка сайтов разных типов — это пакеты для работы с базой данных, для создания профилей пользователей и их авторизации, для создания форм по объектом данных и т.д. Это удобно, но из-за этого сам фреймворк становится достаточно тяжелый, а при его обновлении каждый раз что-нибудь ломается. К тому же, если вас не устраивает какая-то часть фреймворка, то заменить ее на аналог может быть тяжело.

В противоположность тяжеловесному Django был создан микрофреймворк Flask, пропагандирующий противоположный подход — сам Flask является очень минималистичным, а многие возможности в него добавляются с помощью расширений. Если вас не устраивает одно расширение, вы можете его заменить на аналогичное другое. Обновление используемых библиотек поэтому тоже теоретически должно проходить более гладко.

Я был приятно удивлен, узнав, что 2016 году была переведена книга Мигеля Гринберга «Flask Web Development», которая на русском языке стала называться «Разработка веб-приложений с использованием Flask на языке Python».

Это небольшая книга на 270 страниц чуть меньше стандартного формата. В этой книге автор показывает основы использования библиотеки Flask и множества расширений для него. Эта книга не о принципах веб-программирования — подразумевается, что вы уже имеете представление о протоколе HTTP, HTML, веб-формах, базах данных, куках и т.п. вещах. Скорее всего больше всего пользы от этой книги получат те разработчики, которые уже знакомы с Django или еще каким-нибудь веб-фреймворком.

Во время чтения книги у меня сложилось впечатление, что автор описывает как из Flask с помощью расширений создать Django, хотя открытым текстом об этом нигде не сказано. Во Flask нет ORM (Object-Relational Mappers) для работы с базами данных — возьмем SQLAlchemy и расширение Flask-SQLAlchemy. Нет классов для создания форм — подключим расширение Flask-WTF. Когда все это собирается вместе, то по принципу использования все это очень напоминает Django. Хотя мне идея такого конструктора нравится.

В этой книге автор сосредоточился в первую очередь на использовании Flask и библиотек, не углубляясь в особенности их работы. Мне больше нравится, когда в книге автор берется за какой-то компонент фреймворка и разбирает его «до косточек», сразу описывая все особенности и возможные проблемы. Здесь компоненты описаны достаточно поверхностно, а особенности и проблемы, о которых автор упомянет вскользь, могут встретиться спустя несколько глав.

Книга разбита на три части. В первой части рассказывается об основных элементах практически любого веб-приложения: как работать с шаблонами, как создавать веб-формы и обрабатывать данные, полученные от пользователя, как работать с базами данных, отправлять электронную почту. Сюда же входит глава о том, как можно упорядочивать файлы в большом веб-приложении.

Во второй части автор с чистого листа начинает создавать движок для блогов (наподобие LiveJournal, но без древовидных комментариев). Создаваемый движок постепенно обретает возможности для блоггинга, авторизации пользователей, администрирования постов, создания комментариев, добавления пользователей в друзья и создание ленты друзей. В качестве фронтенда используется Bootstrap, но о нем говорится лишь вскользь, поскольку книга посвящена бэкенду. В завершение делается небольшой REST API для сайта.

Именно во второй части и описываются некоторые проблемы и особенности, с которыми придется столкнуться при использовании той или иной библиотеки.

Третья часть книги посвящена тестированию и развертыванию приложения. Тесты пишутся с помощью стандартной библиотеки unittest, а потом добавляются тесты в браузере с помощью Selenium.

Что касается развертывания, то здесь упор сделан на развертывании с помощью сервиса Heroku.

В целом книга полезная и ее вполне можно использовать для того, чтобы начать работать с Flask, и потраченного на нее времени она стоит, но на библию по Flask она не тянет. Хотелось бы, чтобы некоторые вопросы были описаны более подробно. Я бы этой книге поставил оценку 4.

В марте 2018 вышло второе издание этой книги на английском языке. Судя по оглавлению, ничего принципиально нового там не появилось.

PS. Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.

Пожалуйста, оцените запись

УжасноПлохоТак себеХорошоОтлично (Количество голосов: 7, средняя оценка: 5,00)
Загрузка...

комментария 3

  1. unreal666:

    > узнав, что 2016 году была переведена
    Почему в 2016? В самой книге написано 2014.

  2. Jenyay:

    Похоже, что ее переиздавали. На сайтах пишут где-то 2014, где-то 2016. У меня в книге написано 2016.

  3. CodeNull:

    На хабре есть относительно свежий (2018) перевод этой книги: https://habr.com/ru/post/346306/

Leave a comment

Subscribe without commenting