Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

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

Покупка
Артикул: 601060.03.99
К покупке доступен более свежий выпуск Перейти
В этой книге вы изучите популярный микрофреймворк Flask на пошаговых примерах создания законченного приложения социального блогинга. Автор книги Мигель Гринберг познакомит вас с основными функциональными возможностями фреймворка и покажет, как расширять приложения дополнительными веб-технологиями, такими как поддержка миграции базы данных и взаимодействия с веб-службами. Вместо того чтобы навязывать строгие правила, как это делают другие фреймворки, Flask оставляет за вами свободу принятия решений. Если вы имеете опыт программирования на языке Python, данная книга покажет вам, как можно воспользоваться такой свободой творчества!
Гринберг, М. Разработка веб-приложений с использованием Flask на языке Python / М. Гринберг ; пер. с анг. А. Н. Киселева. - Москва : ДМК Пресс, 2014. - 272 с. - ISBN 978-5-97060-138-9. - Текст : электронный. - URL: https://znanium.ru/catalog/product/1031120 (дата обращения: 29.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
785970 601389

ISBN 978-5-97060-138-9

Мигель Гринберг

Разработка 
веб-приложений

с использованием Flask

Разработка веб-приложений с использованием Flask

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

Интернет-магазин:
www.dmkpress.com
Книга – почтой: 
orders@alians-kniga.ru
Оптовая продажа:
“Альянс-книга”
тел.(499)782-38-89 
books@alians-kniga.ru

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

Мигель Гринберг (Miguel Grinberg) имеет более чем 25-летний опыт разработки 
программного обеспечения и в настоящее время работает в индустрии видеовещания. В своем блоге он публикует статьи на разные темы, в том числе о разработке 
веб-приложений, робототехнике и фотографии.

www.дмк.рф

В этой книге вы:
•   изучите базовую структуру приложений на основе Flask и напишете
      пробное приложение;
•   познакомитесь с обязательными компонентами – шаблонами, 
      базами данных, веб-формами и поддержкой электронной почты;
•   научитесь пользоваться пакетами и модулями для организации 
      больших приложений;
•   сконструируете механизм аутентификации пользователей, а также
      их роли и профили;
•   реализуете различные функции поддержки блогинга, включая  
      шаблоны многократного пользования, постраничный вывод 
      списков и отображение форматированного текста;
•   узнаете, как на основе Flask создать RESTful API для организации 
      доступа к функциональности приложения со смартфонов, 
      планшетных компьютеров и других сторонних клиентов;
•   научитесь выполнять модульное тестирование и улучшать 
      производительность приложения;
•   исследуете возможные варианты развертывания веб-приложений 
      для эксплуатации.

на языке Python

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

Мигель Гринберг

Flask Web Development

Miguel Grinberg

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

Москва, 2014

Мигель Гринберг

УДК 004.738.5:004.4Flask
ББК 32.973.26-018.2
 
Г82
 

 
 
Гринберг М.
Г82 
Разработка веб-приложений с использованием Flask на языке 
Python / пер. с анг. А. Н. Киселева. – М.: ДМК Пресс, 2014. – 
272 с.: ил. 

 
ISBN 978-5-97060-138-9

В этой книге вы изучите популярный микрофреймворк Flask на 
пошаговых примерах создания законченного приложения социального 
блогинга. Автор книги Мигель Гринберг познакомит вас с основными 
функциональными возможностями фреймворка и покажет, как расширять приложения дополнительными веб-технологиями, такими как 
поддержка миграции базы данных и взаимодействия с веб-службами.
Вместо того чтобы навязывать строгие правила, как это делают другие фреймворки, Flask оставляет за вами свободу принятия решений. 
Если вы имеете опыт программирования на языке Python, данная книга 
покажет вам, как можно воспользоваться такой свободой творчества!

 
УДК  004.738.5:004.4Flask
 
ББК 32.973.26-018.2

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без 
письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство 
не может гарантировать абсолютную точность и правильность приводимых 
сведений. В связи с этим издательство не несет ответственности за возможные 
ошибки, связанные с использованием книги.

ISBN 978-1-449-37262-0 (анг.) 
Copyright © 2014 Miguel
 
Grinberg
ISBN 978-5-97060-138-9 (рус.) 
©  Оформление, перевод, 
 
 
ДМК Пресс, 2014

Алисе посвящается

Содержание

Предисловие..................................................................................................12

Часть I. Введение в Flask .....................................................................21

Глава 1. Установка .....................................................................................22
Использование виртуальных окружений ...................................................23
Установка пакетов Python с помощью pip ..................................................25

Глава 2. Структура простого приложения .............................26
Инициализация ...................................................................................................26
Маршруты и функции представлений ........................................................26
Запуск сервера .....................................................................................................28
Законченное приложение ................................................................................29
Цикл запрос–ответ .............................................................................................31
Контексты приложения и запроса .........................................................31
Обработка запросов ....................................................................................33
Обработчики событий жизненного цикла ..........................................34
Ответы .............................................................................................................35
Расширения Flask ...............................................................................................37
Поддержка параметров командной строки с помощью 
Flask-Script .....................................................................................................37

Глава 3. Шаблоны ......................................................................................40
Механизм шаблонов Jinja2 ..............................................................................41
Отображение шаблонов ............................................................................41
Переменные ...................................................................................................42
Управляющие структуры ..........................................................................43
Интеграция Twitter Bootstrap с помощью Flask-Bootstrap ..................45
Нестандартные страницы с сообщениями об ошибках .........................49
Ссылки ....................................................................................................................52
Статические файлы ............................................................................................53
Локализация дат и времени с помощью Flask-Moment ........................54

Глава 4. Веб-формы.................................................................................57
Защита от подделки межсайтовых запросов .............................................57
Классы форм .........................................................................................................58
Отображение форм в формат HTML ...........................................................60

Содержание  7

Обработка форм в функциях представления ............................................62
Переадресация и сеансы ...................................................................................65
Всплывающие сообщения ................................................................................67

Глава 5. Базы данных ..............................................................................70
Базы данных SQL ................................................................................................70
Базы данных NoSQL ..........................................................................................71
SQL или NoSQL? ................................................................................................72
Фреймворки на Python поддержки баз данных .......................................72
Интеграция с фреймворком Flask .................................................................74
Управление базой данных с помощью Flask-SQLAlchemy ..................74
Определение модели ..........................................................................................75
Отношения ............................................................................................................78
Операции с базами данных ..............................................................................80
Создание таблиц ..........................................................................................80
Вставка строк ................................................................................................80
Изменение строк ..........................................................................................82
Удаление строк .............................................................................................82
Извлечение строк ........................................................................................82
Операции с базой данных в функциях представления ..........................85
Интеграция с интерактивной оболочкой Python ....................................86
Миграция базы данных с помощью Flask-Migrate ..................................87
Создание репозитория миграции ...........................................................88
Создание сценария миграции .................................................................88
Обновление базы данных .........................................................................89

Глава 6. Электронная почта ..............................................................91
Поддержка электронной почты с помощью Flask-Mail .........................91
Отправка электронной почты из интерактивной оболочки 
Python ..............................................................................................................93
Интеграция поддержки электронной почты в приложение .........93
Асинхронная отправка электронной почты .......................................95

Глава 7. Структура больших приложений .............................97
Структура проекта ..............................................................................................97
Параметры настройки .......................................................................................98
Пакет приложения ........................................................................................... 100
Фабричная функция приложения ...................................................... 100
Реализация функциональности приложения в виде макета ..... 101
Сценарий запуска ............................................................................................ 104

 Содержание

Файл зависимостей ......................................................................................... 105
Модульные тесты ............................................................................................. 106
Настройка базы данных ................................................................................. 108

Часть II. Пример: приложение социального 
блогинга .......................................................................................................... 109

Глава 8. Аутентификация пользователей .......................... 110
Расширения аутентификации для Flask .................................................. 110
Защита паролей ................................................................................................ 111
Хэширование паролей с помощью Werkzeug .................................. 111
Создание макета для поддержки аутентификации .............................. 114
Аутентификация пользователя с помощью Flask-Login .................... 115
Подготовка модели User для аутентификации .............................. 115
Защита маршрутов ................................................................................... 117
Добавление формы аутентификации ................................................ 118
Аутентификация ....................................................................................... 119
Выход пользователя ................................................................................ 121
Тестирование процедуры аутентификации ..................................... 122
Регистрация нового пользователя ............................................................. 122
Добавление формы регистрации пользователя ............................. 123
Регистрация ................................................................................................ 125
Подтверждение создания учетной записи .............................................. 126
Создание маркера подтверждения с помощью 
itsdangerous ................................................................................................. 126
Отправка электронных писем с инструкциями 
для подтверждения .................................................................................. 128
Управление учетными записями ................................................................ 133

Глава 9. Роли пользователей ........................................................ 135
Представление ролей в базе данных ......................................................... 135
Присваивание ролей ....................................................................................... 138
Проверка роли ................................................................................................... 139

Глава 10. Профили пользователей .......................................... 143
Информация для профиля ........................................................................... 143
Страница профиля пользователя ............................................................... 144
Редактор профиля............................................................................................ 147
Редактор профиля уровня пользователя ......................................... 147

Содержание  9

Редактор профиля уровня администратора .................................... 149
Аватары пользователей .................................................................................. 152

Глава 11. Блогинг .................................................................................... 156
Отправка и отображение сообщений ........................................................ 156
Сообщения из блогов на страницах профилей ...................................... 159
Постраничный вывод длинных списков сообщений ........................... 160
Создание фиктивных сообщений ....................................................... 161
Постраничное отображение данных .................................................. 163
Виджет постраничного отображения ................................................ 164
Форматирование текста сообщений с помощью Markdown 
и Flask-PageDown ............................................................................................. 167
Flask-PageDown ......................................................................................... 168
Обработка форматированного текста на сервере .......................... 169
Постоянные ссылки на сообщения ............................................................ 171
Редактор сообщений ....................................................................................... 173

Глава 12. Читающие и читаемые ............................................... 176
Пересмотр отношений в базе данных ....................................................... 176
Отношение «многие ко многим» ......................................................... 177
Самоссылочные отношения .................................................................. 179
Усовершенствованные отношения «многие ко многим» ............ 180
Читающие и читаемые на странице профиля ........................................ 183
Запрос сообщений читаемых пользователей с помощью 
операции соединения ...................................................................................... 186
Отображение сообщений читаемых пользователей на главной 
странице .............................................................................................................. 189

Глава 13. Комментарии пользователей .............................. 194
Представление комментариев в базе данных ......................................... 194
Отправка и отображение комментариев .................................................. 196
Модерирование комментариев ................................................................... 198

Глава 14. Прикладные программные 
интерфейсы ................................................................................................. 204
Введение в REST .............................................................................................. 204
Все сущее является ресурсами ............................................................. 205
Методы запросов ...................................................................................... 206
Содержимое запросов и ответов ......................................................... 207
Поддержка версий .................................................................................... 208

К покупке доступен более свежий выпуск Перейти