SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kingsimba357

    Kingsimba357

    7 NİSAN 2008
  • knopik96

    knopik96

    7 Mayıs 2011
  • The Verge

    The Verge

    8 AĞUSTOS 2006