1. ホーム
  2. python

[解決済み] Django の完全な URL 構成を決定する

2023-05-29 03:03:29

質問

を取得する方法はありますか? コンプリート django の url 設定を取得する方法はありますか?

例えば Django のデバッグ用 404 ページは、含まれる url 設定を表示しないので、これは完全な設定とは言えません。


回答 : Alasdairに感謝し、ここにスクリプトの例を示します。

import urls

def show_urls(urllist, depth=0):
    for entry in urllist:
        print("  " * depth, entry.regex.pattern)
        if hasattr(entry, 'url_patterns'):
            show_urls(entry.url_patterns, depth + 1)

show_urls(urls.urlpatterns)

どのように解決するのですか?

Django は Python なので、イントロスペクションはあなたの味方です。

シェルで、インポート urls . をループすることで urls.urlpatterns をループして、できるだけ多くの階層に含まれる url 設定を掘り下げていくことで、完全な url 設定を構築することができます。

import urls
urls.urlpatterns

リスト urls.urlpatterns には RegexURLPatternRegexURLResolver オブジェクトを作成します。

に対して RegexURLPattern オブジェクト p で正規表現を表示することができます。

p.regex.pattern

の場合は RegexURLResolver オブジェクトを q で、インクルードされたurlの設定を表している場合、正規表現の最初の部分を

q.regex.pattern

次に

q.url_patterns

のリストを返します。 RegexURLResolverRegexURLPattern オブジェクトを作成します。