Научиться настраивать среду разработки и создавать простые веб-приложения с помощью Flask Framework и Jinja2 Templates. Также, обсудить архитектуру веб-приложений.
Узнать, что такое архитектура REST и как она работает, рассмотреть альтернативы REST: gRPC и GraphQL. Научиться создавать RESTful API с помощью Flask-RESTful. Начнем знакомство с ORM SQLAlchemy и познакомимся со SwaggerUI.
Проектирование веб-API
- https://docs.microsoft.com/ru-ru/azure/architecture/best-practices/api-design
- HATEOAS F2 - go to errors Alt + Enter - hint (підказка)
Узнать, зачем нужна валидация данных на сервере, если она уже есть на клиентской части, обсудим, что такое сериализация и десериализация данных. Улучшим структуру приложения.
Повторить, что такое ORM и зачем она нужна, познакомиться с паттернами проектирования, которые используются в SQLAlchemy, научиться делать более сложные запросы с помощью ORM и узнать, как делать агрегационные запросы. Также обсудить подводные камни работы с ORM.
Узнать, что такое миграции и зачем они нужны. Разобрать инструменты, которые используется в Python для миграций данных. Также, напишем собственные миграции.
Узнать, что такое аутентификация и авторизация пользователя, чем они отличаются друг от друга. Также, рассмотреть способы и протоколы аутентификации в веб-приложениях и добавить в наше приложение аутентификацию на базе JWT.
Рассмотрим, какие бывают виды тестирования веб-приложений, узнаем, какие инструменты существуют для тестирования веб-приложений в Python и автоматизируем запуск тестов с помощью Continuous Integrations tools.
Узнаем, что такое Docker и Docker контейнер, рассмотрим причины использования Docker, упакуем наше Flask приложение в Docker контейнер и развернем его на Heroku.
Узнаем, как более эффективно использовать ресурсы сервера/процессора, изучим способы ускорения Flask приложения и рассмотрим варианты применения каждого из способов.
Познакомимся с асинхронным программированием в Python, рассмотрим асинхронный фреймворк Sanic и обсудим, когда лучше применять асинхронный подход, а когда синхронный. Кроме того, изучим концепты асинхронного программирования и какие у него преимущества, и недостатки перед синхронным подходом.