Веб-разработка

Учебник Flask для начинающих

24 урока · 6 разделов · бесплатно, без регистрации

Полный премиум-курс по веб-разработке на Flask 3.x — современном микрофреймворке для Python. Ты пройдёшь путь от первого запроса до боевого приложения: маршрутизация и объект request, шаблоны Jinja2 с наследованием и защитой от XSS, формы и валидация с Flask-WTF и CSRF, базы данных через Flask-SQLAlchemy с моделями и связями, блюпринты, обработка ошибок, тестирование и деплой через Gunicorn. Каждый урок — разбор «под капотом», частые ошибки, best practices и запускаемые врезки на Python.

Курс «Flask: веб на Python» состоит из 6 разделов и 24 уроков: Введение, Маршруты и запросы, Шаблоны Jinja2, Формы и состояние, Базы данных и Практика. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.

Программа курса

  1. 1 Введение

    1. Что такое Flask и зачем он нужен

      Flask — микрофреймворк для веба на Python: философия, место среди Django и FastAPI, как устроен жизненный цикл запроса.

    2. Установка, виртуальное окружение и первый запуск

      Ставим Flask 3.x в виртуальное окружение, разбираемся с pip, requirements и командой flask run.

    3. Application factory и структура проекта

      Фабрика приложения create_app, грамотная структура папок и почему это стандарт современного Flask.

  2. 2 Маршруты и запросы

    1. Маршруты и view-функции

      Декоратор @app.route, что возвращает view-функция, как Flask превращает результат в HTTP-ответ.

    2. Динамические URL и конвертеры

      Переменные части пути <int:id>, конвертеры типов, как параметры URL попадают в view-функцию.

    3. HTTP-методы: GET, POST и обработка форм

      Методы запроса, параметр methods, чтение request.form и request.args, паттерн POST/Redirect/GET.

    4. Объект request: данные запроса полностью

      Атрибуты request: method, args, form, json, files, headers, cookies — и контекст запроса.

    5. Ответы, редиректы, url_for и коды состояния

      Формирование ответа, redirect и url_for, HTTP-статусы, заголовки и make_response.

  3. 3 Шаблоны Jinja2

    1. Введение в Jinja2 и render_template

      Зачем нужны шаблоны, render_template, передача данных в шаблон, разделение логики и представления.

    2. Синтаксис Jinja: переменные, циклы, условия, фильтры

      Выражения, for и if в шаблонах, фильтры через |, безопасный вывод и работа со словарями.

    3. Наследование шаблонов: base, block, extends

      Базовый шаблон-скелет, блоки block, extends в дочерних шаблонах, super() и устранение дублирования.

    4. Автоэкранирование, безопасность и статика

      Автоэкранирование XSS в Jinja, фильтры safe и escape, статические файлы и url_for('static').

  4. 4 Формы и состояние

    1. Обработка форм вручную и валидация

      Чтение полей формы, серверная валидация, накопление ошибок и повторный показ формы с данными.

    2. Flask-WTF, WTForms и защита от CSRF

      Классы FlaskForm, валидаторы, validate_on_submit, автоматическая CSRF-защита и SECRET_KEY.

    3. Сессии, куки и flash-сообщения

      Объект session, подписанные куки, разница cookie и session, flash и get_flashed_messages.

  5. 5 Базы данных

    1. Базы данных и Flask-SQLAlchemy: настройка

      Зачем ORM, подключение Flask-SQLAlchemy 3.x, объект db, init_app и строка подключения.

    2. Модели: таблицы как классы Python

      Описание моделей через Mapped и mapped_column, типы столбцов, первичный ключ, создание таблиц.

    3. CRUD: создание, чтение, обновление, удаление

      db.session.add/commit/delete, современный select(), get_or_404 и паттерн работы с сессией.

    4. Связи между таблицами: relationship

      Внешний ключ ForeignKey, relationship, связи один-ко-многим и доступ к связанным объектам.

  6. 6 Практика

    1. Собираем приложение: блог от и до

      Складываем фабрику, блюпринт, модели, формы и шаблоны в работающий блог — архитектура связки.

    2. Блюпринты: масштабируем структуру

      Зачем блюпринты, регистрация, url_prefix, свои шаблоны и статика, именование endpoint.

    3. Обработка ошибок и страницы 404/500

      Обработчики ошибок errorhandler, abort, кастомные страницы 404/500 и понятные сообщения пользователю.

    4. Тестирование Flask-приложения

      test_client, фикстуры с фабрикой и тестовой базой, проверка статусов и содержимого ответов.

    5. Конфигурация, окружения и деплой в продакшен

      Классы конфигурации, переменные окружения, секреты, Gunicorn и чеклист готовности к продакшену.

py
Курс по теме
Пройдите курс «Python с нуля» — по шагам, с проверкой
8 уроков · ~14 ч · теория, упражнения и экзамен с бейджем
Открыть курс →