Навигация по курсу:
Введение
На мой взгляд, лучшее обучение для программистов - это обучение на практике, поэтому сегодня мы попробуем создать простое веб приложение на python для ведения личного блога. Нам предстоит охватить множество продвинутых технологий, таких как Pytest, SQLAlchemy, Alembic, Docker и, конечно, FastAPI (куда без него 😄). Не будем долго ходить вокруг, да около! Начнем!
Что нам предстоит сделать:
- Отображение всех блогов на странице
- Создание, обновление, удаление блогов
- Создание прав и разрешений (требуется авторизация, удалять могут только суперпользователь и первоначальный автор)
- Аутентификация (регистрация и вход в систему)
- Проверка нашего приложения
- Создание авто-тестов для приложения
- CI/CD
- Развертывание на сервере
Стэк технологий, которые нам понадобятся
Frontend: мы будем использовать Jinja2 в качестве шаблонизатора. А HTML, CSS и Bootstrap будут способствовать достижению наших целей во внешнем интерфейсе.
API: FastAPI будет управлять нашим API, мы будем следовать хорошим принципам разработки программного обеспечения, например. Разработка через тестирование и в некоторой степени принципы чистого кода. Будут соблюдаться принципы проектирования RestAPI.
Pytest: для тестирования приложения, а также мы проверим покрытие нашего. Оно покажет нам, какой процент кода был покрыт модульными тестами.
Git/Github: для управления версиями нашего приложения и в случае, если что-то сломается, мы можем вернуться к предыдущему состоянию.
sqlalchemy: Допустим, вы разрабатываете приложение с помощью Postgresql. Теперь вы даете свой код своему другу, и он/она/они хотят использовать Mysql. Это может потребовать внесения большого количества изменений в код приложения. Поэтому вместо этого мы используем ORM, который использует класс Python и преобразует код для адаптации к любой популярной базе данных.
Alembic: Это похоже на git для базы данных! Мы создаем таблицу и теперь хотим отменить некоторые изменения в нашей таблице, чтобы потом можно было ее использовать.
Postgresql: база данных производственного уровня для хранения данных. Не стесняйтесь использовать любую другую базу данных, если по какой-либо причине вы не хотите устанавливать Postgres. Мы можем использовать SQLite. Это легкая база данных на основе файлов.
Docker: Позволяет автоматизировать сборку и установку приложения.
✅ В следующей части приступим к первоначальной конфигурации проекта.
Читайте также: Часть 2 (Настройка проекта)
❤️ Если вам понравилась статья, ставьте лайк и подписывайтесь на мой канал (Заходи в Ай-Ти).
👍 Если у вас остались вопросы или есть интересные темы, которые вы хотите, чтобы я разобрал, то пишите в комментариях. Ваше мнение очень важно для меня!
#fastapi #fastapi python #fastapi docker