Karena Anda tidak menentukan bahwa itu harus dijalankan command-line, berikut ini dapat dengan mudah dikembalikan di json untuk dasbor atau antarmuka non-command-line lainnya. Bagaimanapun juga, hasil dan keluarannya seharusnya tidak disatukan dari perspektif desain. Ini desain program yang buruk, bahkan jika itu adalah program kecil. Hasil di bawah ini kemudian dapat digunakan dalam aplikasi web, command-line, atau apa pun yang menelan json.
Anda juga tidak menentukan bahwa Anda perlu mengetahui fungsi python yang terkait dengan setiap rute, jadi ini lebih tepat menjawab pertanyaan awal Anda.
Saya menggunakan di bawah ini untuk menambahkan output ke dashboard pemantauan sendiri. Jika Anda ingin metode rute yang tersedia (DAPATKAN, POST, PUT, dll.), Anda harus menggabungkannya dengan jawaban lain di atas.
Repr () aturan mengatur konversi argumen yang diperlukan dalam rute.
def list_routes():
routes = []
for rule in app.url_map.iter_rules():
routes.append('%s' % rule)
return routes
Hal yang sama menggunakan pemahaman daftar:
def list_routes():
return ['%s' % rule for rule in app.url_map.iter_rules()]
Output sampel:
{
"routes": [
"/endpoint1",
"/nested/service/endpoint2",
"/favicon.ico",
"/static/<path:filename>"
]
}
url = url_for(rule.endpoint)
. Saya baru saja mendapat kesalahan iniBuildError: ('DeleteEvent', {}, None)
. Sebagai gantinya, untuk mendapatkan url yang baru saja saya lakukanurl = rule.rule
. Adakah alasan mengapa metode Anda tidak berhasil untuk saya?