Разработка веб-приложений с использованием Flask на языке Python
Покупка
Издательство:
ДМК Пресс
Автор:
Гринберг Мигель
Перевод:
Киселев Артём Николаевич
Год издания: 2014
Кол-во страниц: 272
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Магистратура
ISBN: 978-5-97060-138-9
Артикул: 601060.03.99
К покупке доступен более свежий выпуск
Перейти
В этой книге вы изучите популярный микрофреймворк Flask на пошаговых примерах создания законченного приложения социального блогинга. Автор книги Мигель Гринберг познакомит вас с основными функциональными возможностями фреймворка и покажет, как расширять приложения дополнительными веб-технологиями, такими как поддержка миграции базы данных и взаимодействия с веб-службами. Вместо того чтобы навязывать строгие правила, как это делают другие фреймворки, Flask оставляет за вами свободу принятия решений. Если вы имеете опыт программирования на языке Python, данная книга покажет вам, как можно воспользоваться такой свободой творчества!
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
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
К покупке доступен более свежий выпуск
Перейти