🐛 Типичные ошибки

🎯 Частые ловушки при работе с параметрами URL и Postman

Ошибка 1. Путаешь string и path

Симптом: запрос /reverse/hello/world возвращает 404, хотя маршрут существует.

Причина: использован конвертер string, который не принимает слеши.

# ❌ Неправильно
@app.route('/reverse/<string:text>')

# ✅ Правильно
@app.route('/reverse/<path:text>')

Ошибка 2. Передаёшь float в int-конвертер

Симптом: GET /double/3.5 возвращает 404.

Причина: конвертер int принимает только целые положительные числа без точки.

# ❌ Неправильно
@app.route('/square/<int:number>')
# Запрос /square/3.5 → 404

# ✅ Правильно
@app.route('/square/<float:number>')

Ошибка 3. Забываешь активировать виртуальное окружение

Симптом: команда python app.py пишет ModuleNotFoundError: No module named 'flask'.

Причина: Flask установлен в виртуальном окружении, но оно не активировано.

# Windows
venv\Scripts\activate

# macOS / Linux
source venv/bin/activate

Ошибка 4. Порт 5000 занят другим процессом

Симптом: Flask не запускается с ошибкой Address already in use.

Решение: либо закрой предыдущее окно терминала с запущенным Flask, либо запусти на другом порту:

app.run(debug=True, port=5001)

Ошибка 5. В Postman забываешь выбрать метод GET

Симптом: Postman отправляет POST вместо GET и сервер возвращает 405 Method Not Allowed.

Решение: всегда проверяй выпадающий список метода слева от поля URL в Postman.

Ошибка 6. Переменная окружения не подставляется

Симптом: Postman пишет Could not resolve host: {{base_url}}.

Причина: забыл выбрать нужное окружение в правом верхнем углу Postman (No Environment → Development).

Ошибка 7. Двойные кавычки в f-string конфликтуют

Симптом: синтаксическая ошибка в Python.

# ❌ Неправильно
return f"Hello, {name}!"

# На самом деле это корректно, но если внутри name есть кавычки — лучше:
return f'Hello, {name}!'