Como no especificó que debe ejecutarse en la línea de comandos, lo siguiente podría devolverse fácilmente en json para un tablero u otra interfaz que no sea de línea de comandos. El resultado y el resultado realmente no deberían mezclarse desde una perspectiva de diseño de todos modos. Es un mal diseño del programa, incluso si es un programa pequeño. El resultado a continuación podría usarse en una aplicación web, línea de comandos o cualquier otra cosa que ingiera json.
Tampoco especificó que necesitaba conocer la función de Python asociada con cada ruta, por lo que esto responde con mayor precisión a su pregunta original.
Yo uso a continuación para agregar la salida a un panel de monitoreo yo mismo. Si desea los métodos de ruta disponibles (GET, POST, PUT, etc.), deberá combinarlo con otras respuestas anteriores.
La regla repr () se encarga de convertir los argumentos necesarios en la ruta.
def list_routes():
routes = []
for rule in app.url_map.iter_rules():
routes.append('%s' % rule)
return routes
Lo mismo usando una lista de comprensión:
def list_routes():
return ['%s' % rule for rule in app.url_map.iter_rules()]
Salida de muestra:
{
"routes": [
"/endpoint1",
"/nested/service/endpoint2",
"/favicon.ico",
"/static/<path:filename>"
]
}
url = url_for(rule.endpoint)
. Acabo de recibir este errorBuildError: ('DeleteEvent', {}, None)
. En cambio, para obtener la url que acabo de hacerurl = rule.rule
. ¿Alguna idea de por qué tu método no funciona para mí?