Da Sie nicht angegeben haben, dass die Befehlszeile ausgeführt werden muss, kann Folgendes in json für ein Dashboard oder eine andere Nicht-Befehlszeilenschnittstelle problemlos zurückgegeben werden. Das Ergebnis und die Ausgabe sollten sowieso nicht aus gestalterischer Sicht vermischt werden. Es ist ein schlechtes Programmdesign, auch wenn es ein winziges Programm ist. Das folgende Ergebnis kann dann in einer Webanwendung, einer Befehlszeile oder in anderen Elementen verwendet werden, die json aufnehmen.
Sie haben auch nicht angegeben, dass Sie die mit jeder Route verknüpfte Python-Funktion kennen müssen, damit Ihre ursprüngliche Frage genauer beantwortet wird.
Ich verwende unten, um die Ausgabe selbst einem Überwachungs-Dashboard hinzuzufügen. Wenn Sie die verfügbaren Routenmethoden (GET, POST, PUT usw.) verwenden möchten, müssen Sie sie mit anderen Antworten oben kombinieren.
Rule's repr () sorgt dafür, dass die erforderlichen Argumente in der Route konvertiert werden.
def list_routes():
routes = []
for rule in app.url_map.iter_rules():
routes.append('%s' % rule)
return routes
Das Gleiche mit einem Listenverständnis:
def list_routes():
return ['%s' % rule for rule in app.url_map.iter_rules()]
Beispielausgabe:
{
"routes": [
"/endpoint1",
"/nested/service/endpoint2",
"/favicon.ico",
"/static/<path:filename>"
]
}
url = url_for(rule.endpoint)
. Ich habe gerade diesen Fehler bekommenBuildError: ('DeleteEvent', {}, None)
. Stattdessen, um die URL zu bekommen, die ich gerade gemacht habeurl = rule.rule
. Irgendeine Idee, warum deine Methode bei mir nicht funktioniert?