РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
48 of 643 menu

Конвертер int

Конвертер int указывается в угловых скобках маршрута после двоеточия и применяется к именованному параметру URL. Он принимает из адреса только целые числа, а в функцию-обработчик передаёт уже готовое значение типа int. Если сегмент URL не является целым числом, Flask не вызовет обработчик и вернёт ошибку 404.

Синтаксис параметра выглядит так: <int:name>, где int - имя конвертера, а name - имя аргумента функции-обработчика. По умолчанию, если конвертер не указан, Flask использует конвертер string, который принимает любые символы, кроме слэша, и передаёт их как строку.

Конвертер int поддерживает только положительные целые числа без знака. Отрицательные числа, числа с плавающей точкой и числа с ведущими нулями не принимаются. Например, адрес /user/12 подойдёт, а /user/12.5 или /user/-3 - нет.

Синтаксис

@app.route('/path/<int:name>')

Пример

Давайте повесим обработчик на адрес с целочисленным параметром id:

from flask import Flask app = Flask(__name__) @app.route('/user/<int:id>') def user(id): return f'User ID: {id}, type: {type(id).__name__}'

Результат выполнения кода для адреса /user/12:

User ID: 12, type: int

Пример

Давайте попробуем передать в параметр id не целое число:

from flask import Flask app = Flask(__name__) @app.route('/user/<int:id>') def user(id): return f'User ID: {id}'

Результат выполнения кода для адреса /user/abcde:

404 Not Found

Flask не вызывает функцию-обработчик, потому что значение abcde не является целым числом, и возвращает страницу 404.

Пример

Давайте сложим два целочисленных параметра из URL:

from flask import Flask app = Flask(__name__) @app.route('/sum/<int:a>/<int:b>') def total(a, b): return str(a + b)

Результат выполнения кода для адреса /sum/2/3:

5

Пример

Давайте используем целочисленный параметр в шаблоне:

from flask import Flask, render_template app = Flask(__name__) @app.route('/article/<int:id>') def article(id): return render_template('article.html', id=id)

Файл шаблона:

<p>Article number: {{ id }}</p>

Результат выполнения кода для адреса /article/7:

<p>Article number: 7</p>

Смотрите также

  • конвертер float,
    который принимает из URL числа с плавающей точкой
  • конвертер string,
    который принимает из URL любые строки без слэша
  • конвертер path,
    который принимает из URL строки вместе со слэшами
  • функцию url_for,
    которая строит URL по имени обработчика
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить