Оскільки ви не вказали, що він повинен запускатися командним рядком, наступне можна легко повернути в 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
. Будь-яка ідея, чому ваш метод не працює для мене?