9 Kasım 2012, Cuma
tüm yolların bir listesi uygulama içinde tanımlanan
Şişeyi tabanlı karmaşık web uygulaması var. Görünüm özellikleri ile ayrı dosyalar var. Kendi URL @app.route('/...')
dekoratör ile tanımlanır. Bir yol uygulamam boyunca ilan edilmiştir bütün güzergah listesini almak için var mı? Belki de app
nesne üzerinde arama yapabileceğim bir yöntem var mı?
CEVAP
10 Kasım 2012, CUMARTESİ
Bir uygulama için tüm yolları werkzeug.routing.Map
örneği app.url_map
saklanır. iter_rules
yöntemini kullanarak Rule
örnekleri üzerinde yineleme yapabilirsiniz:
from flask import Flask, url_for
app = Flask(__name__)
def has_no_empty_params(rule):
defaults = rule.defaults if rule.defaults is not None else ()
arguments = rule.arguments if rule.arguments is not None else ()
return len(defaults) >= len(arguments)
@app.route("/site-map")
def site_map():
links = []
for rule in app.url_map.iter_rules():
# Filter out rules we can't navigate to in a browser
# and rules that require parameters
if "GET" in rule.methods and has_no_empty_params(rule):
url = url_for(rule.endpoint, **(rule.defaults or {}))
links.append((url, rule.endpoint))
# links is now a list of url, endpoint tuples
Biraz daha fazla bilgi için Display links to new webpages created bkz.
Bunu Paylaş:
Nasıl klon ya da Python içinde bir lis...
Herhangi bir parametre Listesi içinde ...
bir uygulama içinde kullanıcı adı/paro...
Python listesi kontrol öğesi başka bir...
Nasıl bir Python sınıf içinde yöntemle...