Poiché non è stato specificato che deve essere eseguito dalla riga di comando, è possibile che in Json venga facilmente restituito un dashboard o un'altra interfaccia non da riga di comando. In ogni caso, il risultato e l'output non dovrebbero essere mescolati dal punto di vista del design. È una cattiva progettazione del programma, anche se è un programma minuscolo. Il risultato che segue potrebbe quindi essere utilizzato in un'applicazione Web, nella riga di comando o in qualsiasi altra cosa che ingerisca json.
Inoltre, non hai specificato che dovevi conoscere la funzione Python associata a ciascuna rotta, quindi questo risponde più precisamente alla tua domanda originale.
Uso di seguito per aggiungere personalmente l'output a una dashboard di monitoraggio. Se desideri i metodi di percorso disponibili (GET, POST, PUT, ecc.), Dovrai combinarlo con altre risposte sopra.
Il repr () di Rule si occupa di convertire gli argomenti richiesti nella rotta.
def list_routes():
routes = []
for rule in app.url_map.iter_rules():
routes.append('%s' % rule)
return routes
La stessa cosa usando una comprensione della lista:
def list_routes():
return ['%s' % rule for rule in app.url_map.iter_rules()]
Uscita campione:
{
"routes": [
"/endpoint1",
"/nested/service/endpoint2",
"/favicon.ico",
"/static/<path:filename>"
]
}
url = url_for(rule.endpoint)
. Ho appena ricevuto questo erroreBuildError: ('DeleteEvent', {}, None)
. Invece, per ottenere l'URL ho appena fattourl = rule.rule
. Hai idea del perché il tuo metodo non funziona per me?