Чат курса
Работа в терминале
PowerShell для Windows
Установка пакетов через Homebrew - macOS
Установка пакетов через Scoop - Windows
Установка Python
Работа с Pipx
Профессиональная разработка в профессиональном PyCharm. Установка и настройка.
Работа с Python и знакомство с виртуальным окружением
Poetry для управления зависимостями. И сравнение с uv
Менеджер пакетов uv
Автоматическое форматирование кода
Начало работы с Git
Знакомство с GitHub и GitHub Desktop
Работа с git в PyCharm
Работа с git в VS Code
FastAPI — современный веб-фреймворк
Pydantic для валидации данных
Знакомство с REST API
Зачем нужен JSON
Auth
Запуск сервисов в Docker контейнерах
Оркестрация контейнеров через Docker Compose
Работа с быстрым Redis хранилищем
unittest — встроенный фреймворк для тестирования
Pytest — полное тестирование приложения
Строгая типизация через my[py]
Coverage для проверки покрытия
GitHub Actions: автоматические проверки
Jinja шаблоны страниц
HTML разметка
CSS — стили страниц
Bootstrap фреймворк для переиспользования CSS и JS
HTMX для динамического изменения страницы
PostgreSQL база данных
SQLAlchemy ORM для работы с БД
HTML разметка
Стили CSS
Основы JavaScript
Фреймворк Bootstrap CSS & JS
Публикация на GitHub Pages
SQL запросы
Работа с SQLite
Работа с PostgreSQL
DBeaver для взаимодействия с базой
SQLAlchemy ORM
Python ПРОрыв Разработка веб-приложений на Python
Знакомство с веб-разработкой на Python от и до. Всё, что нужно знать и уметь веб-разработчику на Python.
Сурен Хоренян Автор курса
Python Backend Developer.
Open Source Contributor.
Преподаватель по веб-разработке на Python.
Технологический стек курса Инструменты, которые ты освоишь на практике:
Статистика Уже сейчас на курсе: Чему вы научитесь ✓ Разрабатывать реальные веб-приложения на Python на разных фреймворках: FastAPI, Django и не только
✓ Взаимодействовать с базой данных на чистом SQL и при помощи ORM
✓ Отлаживать и оптимизировать приложение
✓ Тестировать код с unittest и pytest
✓ Следить за чистотой и читаемостью кода
✓ Публиковать проект на продакшн-сервер
✓ Настраивать автоматический деплой проекта через CI/CD
✓ Приобретать домен и привязывать SSL сертификат
Модули курса Развернуть всё
Работа на локальном компьютере ▼
Тем: 4 Уроков: 18 Всего видео на 1 ч 20 м Заданий: 8
▼
Подробнее 1. Терминал
Уроков: 6 • 19 м
1. Windows CMD
2. PowerShell
3. WSL - Ubuntu на Windows
4. zsh
5. Настройка шрифтов в oh-my-posh
6. Настройка шрифта в терминале PyCharm на Windows
2. Установка Python
Уроков: 6 • 41 м
1. Зачем запускать Python локально
2. Установка Scoop на Windows
3. Установка Python на Windows
4. Установка Python на Ubuntu или Debian Linux
5. Установка brew на macOS
6. Установка Python на macOS
3. REPL
Уроков: 2
1. REPL
2. Нижнее подчеркивание
4. Установка pipx
Уроков: 4 • 20 м
1. Зачем нужен pipx
2. Установка pipx на Windows
3. Установка pipx на Ubuntu Linux
4. Установка pipx на macOS
Тем: 2 Уроков: 6 Всего видео на 1 ч 5 м Заданий: 3
▼
Подробнее 1. Начало работы с PyCharm
Уроков: 5 • 58 м
1. Где писать код
2. Установка PyCharm на Windows
3. Установка PyCharm на Ubuntu
4. Установка PyCharm на macOS
5. Знакомство с PyCharm и первичная настройка
2. Плагины
Уроков: 1 • 7 м
Тем: 4 Уроков: 13 Всего видео на 59 м Заданий: 6
▼
Подробнее 1. Виртуальное окружение virtualenv
Уроков: 1
1. Знакомство с virtualenv
2. Poetry
Уроков: 3 • 22 м
1. Установка Poetry
2. Инициализация проекта и установка зависимостей
3. Запуск скриптов в виртуальном окружении через Poetry
3. uv
Уроков: 6 • 29 м
1. Установка uv на *nix
2. Установка uv на Windows
3. uv vs pip и Poetry
4. uv vs virtualenv
5. uv vs pipx
6. uv vs pyenv
4. Установка и использование инструментов
Уроков: 3 • 8 м
1. Установка black через uv tool на Windows
2. Использование black в терминале
3. автоформатирование black в PyCharm
Тем: 2 Уроков: 6 Всего видео на 39 м Заданий: 7
▼
Подробнее 1. Контроль версий
Уроков: 3 • 30 м
1. Знакомство с git в PyCharm
2. .gitignore
3. git - Быстрый старт на Windows
2. Удобное управление git
Уроков: 3 • 9 м
1. Знакомство с GitHub Desktop
2. git в VS Code
3. git в PyCharm
FastAPI приложение коротких ссылок ▼
🔨 Модуль в активной разработке
Тем: 21 Уроков: 172 Всего видео на 30 ч 47 м Заданий: 227
▼
Подробнее 1. FastAPI короткие ссылки REST API
Уроков: 18 • 4 ч 6 м
1. Старт FastAPI проекта коротких ссылок
2. API представление
3. Параметры пути, схемы, перенаправление, зависимости view
4. Разделение и API Router
5. Получение данных в форме
6. Получение данных в JSON теле
7. Хранение данных в памяти
8. Удаление записи
9. Нужно больше вложенных роутеров
10. Обновление PUT
11. Обновление PATCH
12. Важность схемы ответа
13. Хранение данных. Задание и решение
14. Логирование событий
15. Цикл жизни приложения
16. BackgroundTasks - откладываем действия
17. Зависимости на уровне роутера
18. Проверка метода запроса
2. FastAPI Auth
Уроков: 7 • 1 ч 22 м
1. Auth vs Auth
2. Когда использовать Token Auth
3. Токен в строке запроса
4. Токен в заголовках запроса
5. Единый вход в документации Swagger
6. Basic Auth
7. Выбор метода входа
3. Знакомство с Docker Desktop
Уроков: 5 • 43 м
1. Контейнеризация и Docker
2. Установка Docker Desktop на Windows + WSL
3. Установка Docker Desktop на Ubuntu
4. Установка Docker Desktop на macOS
5. Запуск контейнеров в терминале
4. Знакомство с Redis
Уроков: 3 • 20 м
1. Что такое Redis
2. Запуск Redis и первое знакомство
3. Базы данных в Redis
5. Хранение данных приложения в Redis
Уроков: 12 • 1 ч 42 м
1. Подключение Python приложения к Redis
2. Хранение токенов в Redis
3. Обертка над Redis для работы с токенами
4. Хранение пользователей в Redis
5. Сохранение коротких ссылок в Redis
6. Получение короткой ссылки из Redis
7. Получение коротких ссылок из Redis
8. Обновление короткой ссылки в Redis
9. Удаление короткой ссылки из Redis
10. Уборка. Избавляемся от лишнего кода
11. Проверка наличия короткой ссылки перед записью
12. Реализация в CRUD проверки наличия короткой ссылки
6. Команды в терминале
Уроков: 5 • 41 м
1. Свои команды в терминале
2. Команда для проверки токена
3. Команда для отображения токенов
4. Команды для управления токенами
5. Запуск manage скрипта на Windows
7. Принуждение к типизации
Уроков: 5 • 47 м
1. Почему нам важно строго соблюдать типы
2. Знакомство с mypy
3. Согласование кода с mypy
4. Строгий mypy
5. mypy и Pydantic
8. Соблюдение код-стиля
Уроков: 5 • 53 м
1. Зачем соблюдать код-стиль
2. Знакомство с ruff
3. Автоматическое причесывание импортов
4. Подключение новых правил
5. Принуждение к соблюдению код-стиля
9. Тестирование на unittest
Уроков: 12 • 1 ч 43 м
1. Введение в тестирование
2. Организация файлов тестирования
3. Первый тест на unittest
4. Проверка совместимости схем
5. Группировка идентичных проверок
6. Ожидание исключений
7. Переменные окружения на Windows в разных оболочках
8. Тестовое окружение
9. Проверка работы с хранилищем
10. Другие способы валидации
11. Предварительная настройка до теста и уборка за собой
12. Предварительная настройка до всех тестов и уборка за собой
10. Проверка покрытия
Уроков: 6 • 49 м
1. Зачем проверять покрытие
2. Проверка покрытия в PyCharm
3. Знакомство с coverage
4. Отчёты о покрытии
5. Генерация отчётов
6. Настройки coverage
11. Тестирование на pytest
Уроков: 24 • 4 ч
1. Почему нам недостаточно unittest
2. Знакомство с pytest
3. Первый тест на pytest
4. Группа тестов на pytest
5. Принудительное завершение pytest
6. Знакомство с conftest
7. Перенос представления в отдельный модуль
8. Первый API тест FastAPI приложения
9. Параметризация в pytest
10. Ожидание исключений на pytest
11. Фикстуры в pytest
12. Фикстура убирает за собой
13. Общие фикстуры в conftest
14. Вложенные фикстуры, частота создания фикстур, api тесты
15. Параметризация фикстур в pytest
16. Косвенная и частичная параметризация фикстур
17. Автоматическое применение фикстур в pytest
18. Плагин pytest-cov
19. Настройки pytest
20. Метки pytest
21. Ожидаемая ошибка - метка xfail
22. Пропуск теста - skip и skipif
23. Отчёт pytest по результатам - флаги r
24. Фикстура caplog
12. Знакомство с GitHub Actions
Уроков: 12 • 2 ч 50 м
1. Что такое CI
2. Знакомство с GitHub Actions
3. Контекст текущего запуска
4. События и условия для действий
5. Установка Python и запуск black в Github Actions
6. Доступ PyCharm к GitHub для чтения Actions
7. Обновляем и фиксируем версию uv
8. Установка uv зависимостей в GitHub Actions
9. Запуск mypy в GitHub Actions
10. Запуск ruff в GitHub Actions
11. Запуск pre-commit в GitHub Actions
12. Бейджи по результатам CI
13. Автотесты и проверка покрытия в GitHub Actions
Уроков: 10 • 3 ч 37 м
1. Обязательный успех для запуска следующей джобы в GitHub Action
2. Запуск тестов в GitHub Actions
3. Запуск контейнеров в GitHub Actions
4. GitHub CLI
5. Локальный запуск CI через act
6. Секреты в локальном act
7. Интерактивные отчёты о покрытии в GitHub
8. Важность проверки покрытия
9. Кастомный бейдж своими силами
10. Артефакты по результатам CI
14. Конфигурация приложения
Уроков: 7 • 1 ч 28 м
1. Знакомство с pydantic-settings
2. Настройки настроек
3. .env файл
4. Несколько .env файлов
5. Переменные окружения
6. YAML файлы
7. Кэшированный объект настроек
15. FastAPI шаблоны HTML страниц
Уроков: 8 • 1 ч 7 м
1. Главная страница HTML
2. Отображение представления в документации
3. Шаблон главной страницы
4. Базовый шаблон страницы
5. Навигационная панель
6. Стандартный контекст шаблона
7. Страница о проекте
8. Активная ссылка
16. Наводим порядок перед большой работой
Уроков: 5 • 40 м
1. Обновление тестов
2. Расположение кода хранилища
3. Организация HTML представлений
4. Хранилище через зависимость
5. Глобальный экземпляр хранилища
17. Отображение коротких ссылок
Уроков: 4 • 22 м
1. Раздел коротких ссылок
2. Пустой список коротких ссылок
3. Список всех коротких ссылок
4. Переход на целевой сайт
18. Создание короткой ссылки
Уроков: 9 • 1 ч 33 м
1. Представления для создания новой короткой ссылки и Pydantic форма
2. HTML форма создания новой короткой ссылки
3. Макросы в Jinja
4. Кнопки навигации
5. Создание короткой ссылки через форму
6. Обработка ошибки при создании
7. Обработка ошибок валидации формы
8. Аутентификация при создании
9. Проверка кода и исправление ошибок
19. Обновление короткой ссылки
Уроков: 7 • 49 м
1. Рефакторинг ответа с формой
2. Рефакторинг HTML формы
3. Переход к редактированию короткой ссылки
4. Страница редактирования короткой ссылки
5. Проброс текущей короткой ссылки
6. Обновление короткой ссылки
7. Обработка ошибок при обновлении
20. Удаление короткой ссылки
Уроков: 5 • 38 м
1. Модальное окно
2. Представление для удаления короткой ссылки
3. Форма для удаления короткой ссылки
4. Удаление короткой ссылки из хранилища
5. Внезапный HTMX
21. Сессия пользователя
Уроков: 3 • 37 м
1. Что такое сессия
2. Starlette SessionMiddleware
3. flash сообщения о создании
Тем: 6 Уроков: 30 Всего видео на 5 ч 16 м Заданий: 81
▼
Подробнее 1. HTML
Уроков: 6 • 1 ч 27 м
1. Что такое HTML
2. Первая HTML страница
3. Популярные теги
4. Формы
5. Стандартные поля ввода
6. Правила хорошего тона
2. CSS
Уроков: 4 • 36 м
1. Знакомство с CSS
2. Стиль элемента
3. Базовые стили элементов страницы
4. Стили и классы
3. JavaScript
Уроков: 6 • 42 м
1. Зачем нужен JS
2. Первые строки на JS
3. Взаимодействие с компонентами
4. Обновление части элемента
5. Простая обработка событий
6. Слушатели событий
4. Готовые наборы CSS - Bootstrap
Уроков: 6 • 1 ч 36 м
1. Готовые наборы CSS - зачем нужны и какие бывают
2. Знакомство с Bootstrap
3. Система именования в Bootstrap
4. Подключение Bootstrap CSS
5. Сетка страницы
6. Панель навигации
5. Сторонний JS
Уроков: 5 • 43 м
1. Использование стороннего JS
2. Подключение Bootstrap JS
3. Тултипы и поповеры
4. Фильтр на JS
5. Что если нет JS
6. Публикация статичного сайта
Уроков: 3 • 12 м
1. Выбор хостинга
2. Загрузка в репозиторий
3. Запуск на GitHub Pages
🔨 Модуль в активной разработке
Тем: 4 Уроков: 24 Всего видео на 2 ч 38 м Заданий: 5
▼
Подробнее 1. Знакомство с SQL
Уроков: 8 • 1 ч 7 м
1. Что такое базы данных
2. Что такое SQL
3. SQLite
4. Запросы и сортировка
5. Фильтрация
6. Вставка
7. Обновление
8. Удаление
2. Проектирование таблицы
Уроков: 8 • 57 м
1. Описание таблицы товаров
2. Схема таблицы товаров
3. Тип первичного ключа
4. Создание и удаление таблиц
5. Создание таблицы товаров
6. Описание таблицы клиентов
7. Схема таблицы клиентов
8. Создание таблицы клиентов
3. Запуск Postgres и первое подключение
Уроков: 3 • 11 м
1. Запуск PostgreSQL в Docker
2. Подключение через DBeaver
3. Новая схема
4. Обновление таблицы
Уроков: 5 • 23 м
1. Доработка описания таблицы товаров
2. Доработка схемы таблицы товаров
3. Модификация таблицы товаров
4. Доработка описания и схемы таблицы клиентов
5. Модификация таблицы клиентов
📦
Новые модули в разработке Курс постоянно обновляется, скоро тут появятся новые темы. Например аренда сервера, настройка SSH, работа с Django.
Следите за обновлениями в канале или в разделе изменений
🚀
Курс в активной разработке Программа постоянно развивается, каждый месяц я добавляю новые темы и материалы. Присоединяйтесь сейчас и получайте все будущие обновления без дополнительных платежей!
🎁
Все обновления бесплатно Этот материал подходит для всех, кто хочет повысить свой скилл.
Например, если вы уже начинали изучать программирование и хотите структурировать свои знания, а также добавить себе пару проектов в портфолио. Возможно, вы уже писали телеграм-ботов или веб-приложения на Python или других языках программирования. В этом материале я проведу вас за ручку через сложности вкатывания в новую тему и дам вам все инструменты для самостоятельной работы.
Если вы только думаете познакомиться с программированием и веб-разработкой на Python. Важно! В данный момент ещё не готовы занятия по основам основ работы с Python: что это такое, функции, классы. По этим темам мы пробежимся поверхностно и только в рамках решения более сложных задач.
Что нужно уметь до старта:
Уверенный пользователь ПК Умеете устанавливать браузер на компьютер Пробовали писать что-то на Python Готовы к свершениям Образовательный материал состоит из занятий нескольких типов:
Видеолекции — я показываю экран компьютера, веду лайв-кодинг и рассказываю каждый свой шаг, объясняя вам, почему тут нужно сделать именно так, а не иначе. Короткие введения на 2–5 минут, уроки по 10–15 минут, а также погружения в новые темы на 20 минут.
Почти каждое занятие сопровождается заданием. Это может быть тест, текстовое задание или задача на написание кода. Многие задания проверяются автоматически. Остальные проверяются вручную.
По любым сложностям я отвечу в телеграм-чате. Также вопросы можно будет задавать на онлайн-консультациях, которые я провожу раз в 3–5 недель. Если будет большой спрос на консультации, участим их до пары раз в месяц.
Что вы получаете ★ Много видеороликов — всё ещё идёт процесс записи, опубликовано уже более 250 уроков
★ Очень много практики — почти после каждого видео идёт практическое задание
★ Ведение ваших проектов, ревью проекта, обратная связь
★ Ежедневная помощь в чате — отвечает Сурен и другие участники
★ Регулярные групповые онлайн-встречи для решения любых вопросов по коду
★ Опыт реальной разработки проекта с нуля и до запуска в продакшн
Присоединиться Образовательная программа расположена на разных ресурсах для вашего удобства
🎓
Основной сайт Сайт курса, тут есть выбор тарифа: бесплатный пробный и платный полный.
Прием платежей со всего мира! Любые карточки, и не только. Если возникают сложности с оплатой, свяжитесь со мной.
Перейти к курсу → 💡 Если вы хотите оформить программу на юр. лицо и оплатить по счёту, свяжитесь со мной (контакты ниже).
📚
Stepik Курс на Stepik
По ссылке автоматически применится промокод. Это вам в благодарность, что вы переходите по ссылке для оплаты, так я плачу сервису сниженную комиссию. Прошу не копировать промокод, а переходить по ссылке.
Перейти к курсу → ℹ️ Stepik берет повышенную комиссию, поэтому стоимость программы выше. Вы можете оформить программу на юр. лицо через поддержку Stepik, но за это они берут дополнительную комиссию сверху цены программы.
Ценность программы 👨🏫
Поддержка автора Постоянные консультации в чате и регулярные групповые созвоны с Суреном.
💼
Настоящие задачи Практика на реальных примерах, чтобы приблизить вас к настоящей разработке веб-приложений.
🚀
Практический опыт Создайте и опубликуйте настоящие приложения в рамках программы, шаг за шагом.
⚡
Актуальные технологии Освойте современные инструменты и фреймворки веб-разработки. Программа постоянно обновляется.
🌍
Глобальное сообщество Присоединяйтесь к мировому сообществу Python-разработчиков.
🏢
Оплата по счёту (для юр. лиц) Напишите мне любым удобным вам способом, чтобы оформить программу на юр. лицо, оплатить по счёту. Без посредников.
Готовы начать обучение? Изучите полную программу курса. Если остались вопросы, напишите.