Метод url_defaults
Метод url_defaults применяется к приложению
Flask и регистрирует функцию, которая подставляет
значения по умолчанию для параметров URL. Первым
параметром передаётся функция-обработчик, принимающая
словарь endpoint и словарь values.
Эта функция вызывается перед построением URL и позволяет
заполнить отсутствующие параметры маршрута.
Синтаксис
@app.url_defaults
def handler(endpoint, values):
pass
Пример
Давайте зададим значение по умолчанию для параметра
lang во всех маршрутах:
from flask import Flask, url_for
app = Flask(__name__)
@app.url_defaults
def set_lang(endpoint, values):
if 'lang' not in values:
values['lang'] = 'en'
@app.route('/page/<lang>')
def page(lang):
return lang
with app.test_request_context():
res = url_for('page')
Результат выполнения кода:
'/page/en'
Пример
Давайте подставим значение по умолчанию только для
конкретного эндпоинта user:
from flask import Flask, url_for
app = Flask(__name__)
@app.url_defaults
def set_user(endpoint, values):
if endpoint == 'user' and 'name' not in values:
values['name'] = 'abcde'
@app.route('/user/<name>')
def user(name):
return name
with app.test_request_context():
res = url_for('user')
Результат выполнения кода:
'/user/abcde'
Смотрите также
-
метод
route,
который регистрирует маршрут приложения -
метод
add_url_rule,
который добавляет маршрут без декоратора -
метод
endpoint,
который возвращает имя эндпоинта по запросу -
атрибут
url_map,
который хранит карту маршрутов приложения