💻 Примеры кода

🎯 Практика: базовое приложение и маршруты с параметрами

Пример 1. Базовое приложение Hello World

Создай файл app.py и запусти сервер:

from flask import Flask

app = Flask(__name__)

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

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

Проверка: открой в браузере или Postman http://127.0.0.1:5000/ — увидишь Hello, World!.

Пример 2. Параметр string

from flask import Flask

app = Flask(__name__)

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

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

Проверка: запрос GET /hello/AnnaHello, Anna!.

Примечание: конвертер string используется по умолчанию, если тип не указан. Он не принимает слеши.

Пример 3. Параметр int

from flask import Flask

app = Flask(__name__)

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

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

Проверка:

Пример 4. Параметр float

from flask import Flask

app = Flask(__name__)

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

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

Проверка: GET /square/3.5The square of 3.5 is 12.25.

Пример 5. Параметр path

from flask import Flask

app = Flask(__name__)

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

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

Проверка:

Важно: с конвертером string запрос /reverse/hello/world вернул бы 404, потому что string не принимает слеши.

Пример 6. Несколько параметров в одном маршруте

from flask import Flask

app = Flask(__name__)

@app.route('/calc/<int:a>/<string:op>/<int:b>')
def calc(a, op, b):
    if op == 'add':
        result = a + b
    elif op == 'sub':
        result = a - b
    elif op == 'mul':
        result = a * b
    else:
        return 'Unknown operation', 400
    return f'{a} {op} {b} = {result}'

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

Проверка: GET /calc/10/add/310 add 3 = 13.