Поскольку вы не указали, что он должен запускаться из командной строки, следующее можно легко вернуть в json для панели мониторинга или другого интерфейса, отличного от командной строки. В любом случае результат и результат не должны смешиваться с точки зрения дизайна. Это плохой дизайн программы, даже если это крошечная программа. Приведенный ниже результат можно затем использовать в веб-приложении, командной строке или в любом другом месте, которое принимает json.
Вы также не указали, что вам необходимо знать функцию python, связанную с каждым маршрутом, поэтому это более точно отвечает на ваш исходный вопрос.
Я использую ниже, чтобы сам добавить вывод на панель мониторинга. Если вам нужны доступные методы маршрута (GET, POST, PUT и т. Д.), Вам нужно будет объединить их с другими ответами выше.
Функция repr () правила выполняет преобразование необходимых аргументов в маршруте.
def list_routes():
routes = []
for rule in app.url_map.iter_rules():
routes.append('%s' % rule)
return routes
То же самое с пониманием списка:
def list_routes():
return ['%s' % rule for rule in app.url_map.iter_rules()]
Пример вывода:
{
"routes": [
"/endpoint1",
"/nested/service/endpoint2",
"/favicon.ico",
"/static/<path:filename>"
]
}
url = url_for(rule.endpoint)
. Я только что получил эту ошибкуBuildError: ('DeleteEvent', {}, None)
. Вместо этого, чтобы получить URL, который я только что сделалurl = rule.rule
. Есть идеи, почему ваш метод не работает для меня?