✅ Решения

Тест

1: B (HTTPS)

2: C (pip install flask)

3: C (path)

4: B (связывает URL с функцией)

5: C (model_validate_json)

6: B (больше 0)

7: C (@field_validator)

Практика 1: Flask-приложение

from flask import Flask
app = Flask(__name__)

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

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

@app.route('/square/<int:n>')
def square(n):
    return str(n * n)

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

Практика 2: Pydantic-модели

from pydantic import BaseModel, Field, EmailStr, model_validator

class Address(BaseModel):
    city: str = Field(..., min_length=2)
    street: str = Field(..., min_length=3)
    house_number: int = Field(..., gt=0)

class User(BaseModel):
    name: str = Field(..., min_length=2)
    age: int = Field(..., ge=0, le=120)
    email: EmailStr
    is_employed: bool
    address: Address

    @model_validator(mode='after')
    def check_age(self):
        if self.is_employed and not (18 <= self.age <= 65):
            raise ValueError('Возраст 18–65 при is_employed=True')
        return self

Практика 3: JSON-функция

from pydantic import ValidationError

def register_user(json_string: str):
    try:
        user = User.model_validate_json(json_string)
        return user.model_dump_json()
    except ValidationError as e:
        return {'error': str(e)}