✅ Решения

🎯 Ответы на тесты и разбор практики

Часть 1. Ответы на тест

Вопрос 1

Ответ: C) HTTPS

HTTPS — это HTTP с шифрованием TLS/SSL. Данные передаются в зашифрованном виде, что защищает от перехвата.

Вопрос 2

Ответ: B) Flask — микрофреймворк, Django — полнофункциональный фреймворк

Flask даёт минимум из коробки и максимум гибкости. Django включает админку, ORM, аутентификацию и другие компоненты.

Вопрос 3

Ответ: C) pip install flask

Стандартная команда установки пакетов Python через pip.

Вопрос 4

Ответ: B) Связывает URL с функцией-обработчиком

Декоратор @app.route('/') говорит Flask: «когда придёт запрос на этот URL, вызови эту функцию».

Вопрос 5

Ответ: B) Для запуска сервера с автоперезагрузкой и детальным выводом ошибок

debug=True включает два полезных режима: автоматическую перезагрузку при изменении кода и интерактивный отладчик в браузере при ошибках.

Вопрос 6

Ответ: A) @app.route()

Это единственный правильный синтаксис для создания маршрута во Flask.

Вопрос 7

Ответ: C) path

Конвертер path принимает строку, включая символы слеша /. Конвертер string слеши не принимает.

Часть 2. Решения практических заданий

Задание 1. Базовое приложение

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

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

Задание 2. Параметр string

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

Задание 3. Параметр int

@app.route('/double/<int:number>')
def double_number(number):
    result = number * 2
    return str(result)

Или с f-string:

@app.route('/double/<int:number>')
def double_number(number):
    return f'{number} doubled is {number * 2}'

Задание 4. Параметр float

@app.route('/square/<float:number>')
def square_number(number):
    return f'The square of {number} is {number * number}'

Задание 5. Параметр path

@app.route('/reverse/<path:text>')
def reverse_text(text):
    reversed_text = text[::-1]
    return f'{text} reversed is {reversed_text}'

Проверка разницы string vs path:

# С path — работает
GET /reverse/hello/world
# → "hello/world reversed is dlrow/olleh"

# Если заменить на <string:text> — тот же URL вернёт 404,
# потому что string не принимает слеши.

Задание 6. Postman-коллекция

Шаги:

  1. Создай Environment «Development» с переменной base_url = http://127.0.0.1:5000.
  2. Создай Collection «Flask Practice 1».
  3. Добавь запросы:
НазваниеМетодURL
Hello WorldGET{{base_url}}/
Hello NameGET{{base_url}}/hello/Anna
Double IntGET{{base_url}}/double/7
Square FloatGET{{base_url}}/square/3.5
Reverse PathGET{{base_url}}/reverse/hello/world