🏠 Домашнее задание 1

⚡ Суть задания

Создать простое веб-приложение на Flask: настроить проект, создать два маршрута (/ и /user/<name>), запустить и проверить. Выложить на GitHub.

Результат: рабочее Flask-приложение с двумя страницами, код в репозитории, скриншоты работающих маршрутов.

📋 Формулировка задания

Исходное задание из LMS:

Создайте простое веб-приложение на Flask. Следуйте следующему алгоритму:

  1. Настройка проекта: создайте новый проект. Настройте виртуальное окружение. Активируйте виртуальное окружение и установите Flask с помощью pip.
  2. Создание базового Flask-приложения: создайте файл main.py. Импортируйте необходимые модули (Flask). Напишите код для создания экземпляра Flask-приложения. Добавьте маршрут, который будет отвечать на корневой URL (/) и возвращать простое приветствие, например, «Hello, Flask!».
  3. Расширение функциональности: добавьте дополнительный маршрут /user/<name>, который будет возвращать приветственное сообщение с переданным именем.
  4. Запуск и тестирование приложения: запустите приложение, убедитесь, что все маршруты работают корректно. Приложите как решение ваш проект на гите и скриншоты с проверкой работы всех маршрутов.

🔧 Шаг 0. Подготовка окружения

Перед началом работы над любым заданием курса нужно настроить окружение.

📁 Структура репозитория: мы используем один репозиторий для всех практических работ курса. Это удобнее, чем 46 отдельных репозиториев.
1

Создайте (или откройте) рабочую папку в VS Code

В VS Code нажмите Ctrl+K Ctrl+O → выберите или создайте папку python-advanced-practice. Это будет корень вашего учебного репозитория.

# Или в терминале VS Code (Ctrl + `):
mkdir python-advanced-practice
cd python-advanced-practice
2

Инициализируйте Git-репозиторий (один раз на весь курс)

git init

# Создайте базовые файлы
echo "# Python Advanced — Практические работы" > README.md
echo "venv/" > .gitignore
echo "__pycache__/" >> .gitignore
echo "*.pyc" >> .gitignore
echo ".env" >> .gitignore

git add README.md .gitignore
git commit -m "init: базовая структура репозитория"
3

Создайте папку для текущего урока

mkdir -p flask/lesson-01
cd flask/lesson-01
4

Создайте виртуальное окружение (venv)

# Windows (PowerShell / CMD)
python -m venv venv
venv\Scripts\activate

# Mac / Linux
python3 -m venv venv
source venv/bin/activate

После активации в начале строки терминала появится (venv). Все дальнейшие команды выполняйте внутри venv.

5

Установите Flask

pip install flask

# Сохраните зависимости
pip freeze > requirements.txt
6

Создайте ветку для задания

# Вернитесь в корень репозитория
cd ../../..

# Создайте и переключитесь на ветку
git checkout -b lesson/01-flask-intro

# Если у вас есть удалённый репозиторий (GitHub/GitLab):
git push -u origin lesson/01-flask-intro

🛠️ Шаги выполнения задания

1

Создайте файл main.py

В VS Code создайте файл flask/lesson-01/main.py и напишите базовое приложение:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, Flask!'

if __name__ == '__main__':
    app.run(debug=True)

Проверка в VS Code:

  1. Убедитесь, что venv активирован (в терминале есть (venv)).
  2. Запустите: python flask/lesson-01/main.py
  3. Откройте браузер: http://127.0.0.1:5000
  4. Вы должны увидеть: Hello, Flask!
2

Добавьте маршрут с параметром

Добавьте в main.py второй маршрут:

@app.route('/user/<name>')
def greet_user(name):
    return f'Hello, {name}!'

Проверка: откройте http://127.0.0.1:5000/user/ВашеИмя — должно отобразиться приветствие с именем.

3

Сделайте скриншоты работающих маршрутов

Сделайте скриншоты:

  1. Главная страница /
  2. Страница /user/ВашеИмя

Сохраните скриншоты в папку flask/lesson-01/screenshots/.

✅ Полное решение

Ниже приведено полное решение задания. Совет: попробуйте выполнить самостоятельно, прежде чем смотреть ответ.

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, Flask!'

@app.route('/user/<name>')
def greet_user(name):
    return f'Hello, {name}!'

if __name__ == '__main__':
    app.run(debug=True)

🧪 Как проверить решение

  1. Активируйте venv: venv\Scripts\activate (Windows) или source venv/bin/activate (Mac/Linux).
  2. Запустите: python flask/lesson-01/main.py
  3. Проверьте терминал — не должно быть ошибок, должна появиться строка Running on http://127.0.0.1:5000.
  4. Откройте в браузере:
    • http://127.0.0.1:5000 → «Hello, Flask!»
    • http://127.0.0.1:5000/user/Anna → «Hello, Anna!»

🐛 Отладка в VS Code

Если что-то не работает:

  1. Поставьте точку останова (breakpoint) кликом слева от номера строки в main.py.
  2. Нажмите F5 → выберите Python File.
  3. Используйте панель Debug (переменные, стек вызовов, консоль).
  4. Проверьте Terminal на наличие traceback — Python показывает номер строки с ошибкой.

💾 Сохранение работы

# Добавьте все файлы урока
git add flask/lesson-01/

# Сделайте коммит с осмысленным сообщением
git commit -m "lesson-01: Flask intro — базовое приложение и маршрутизация"

# Отправьте на GitHub / GitLab
git push

🛠️ Настройка VS Code для Flask

Рекомендуемые расширения:

  • Python (Microsoft) — подсветка, IntelliSense, отладка.
  • Pylance (Microsoft) — улучшенный анализ кода Python.

Настройка запуска (опционально):

  1. Нажмите Ctrl+Shift+PPython: Create Environment → выберите venv.
  2. Для запуска: F5Python File.

💡 Советы и типичные ошибки

  • Убедитесь, что venv активирован перед установкой пакетов.
  • Не коммитьте папку venv/ — она указана в .gitignore.
  • Если порт 5000 занят — измените порт: app.run(port=5001).
  • Не используйте app.run() в продакшене — только для разработки.