Атрибут url_map
Атрибут url_map доступен у экземпляра класса Flask
и содержит объект Map из библиотеки Werkzeug.
В этом объекте хранятся все правила маршрутизации,
зарегистрированные через route или add_url_rule.
Атрибут доступен только для чтения и не принимает параметров.
Синтаксис
app.url_map
Пример
Давайте посмотрим, какие правила содержит url_map
после регистрации двух маршрутов:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'hello'
@app.route('/user/<name>')
def user(name):
return name
for rule in app.url_map.iter_rules():
print(rule)
Результат выполнения кода:
/
/user/<name>
/static/<path:filename>
Пример
Давайте получим список доступных методов для каждого правила:
from flask import Flask
app = Flask(__name__)
@app.route('/article', methods=['GET', 'POST'])
def article():
return 'article'
for rule in app.url_map.iter_rules():
print(rule.rule, sorted(rule.methods))
Результат выполнения кода:
/article ['GET', 'HEAD', 'OPTIONS', 'POST']
/static/<path:filename> ['GET', 'HEAD', 'OPTIONS']
Пример
Давайте найдём правило по endpoint через метод url_map:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'hello'
adapter = app.url_map.bind('localhost')
print(adapter.build('index'))
Результат выполнения кода:
"/"
Смотрите также
-
класс
Flask,
который представляет приложение Flask -
метод
route,
который регистрирует маршрут в url_map -
метод
add_url_rule,
который добавляет правило маршрутизации напрямую -
атрибут
view_functions,
который хранит словарь функций-обработчиков