Конвертер uuid
Конвертер uuid применяется в маршрутах Flask для приёма параметров из URL в виде UUID. Flask извлекает значение из адреса, проверяет его соответствие формату UUID и преобразует в объект UUID из модуля uuid. Если строка не является корректным UUID, Flask вернёт ошибку 404. Конвертер указывается в угловых скобках после имени параметра через двоеточие.
Синтаксис
@app.route('/<uuid:name>')
Пример
Давайте повесим обработчик на адрес '/item/<uuid:item_id>' и вернём строковое представление полученного UUID:
from flask import Flask
app = Flask(__name__)
@app.route('/item/<uuid:item_id>')
def item(item_id):
return str(item_id)
Результат выполнения кода для адреса /item/123e4567-e89b-12d3-a456-426614174000:
123e4567-e89b-12d3-a456-426614174000
Пример
Давайте убедимся, что параметр приходит именно объектом UUID, и обратимся к его атрибутам:
from flask import Flask
from uuid import UUID
app = Flask(__name__)
@app.route('/user/<uuid:user_id>')
def user(user_id):
res = isinstance(user_id, UUID)
return f'{res}: {user_id.hex}'
Результат выполнения кода для адреса /user/123e4567-e89b-12d3-a456-426614174000:
True: 123e4567e89b12d3a456426614174000
Пример
Давайте передадим некорректный UUID и посмотрим на реакцию Flask:
from flask import Flask
app = Flask(__name__)
@app.route('/item/<uuid:item_id>')
def item(item_id):
return str(item_id)
Результат выполнения кода для адреса /item/abcde:
404 Not Found