【Django】URL dispatcher?URLconf?urls.py?

- Python -
2020.02.18
Django

Djangoの公式チュートリアルをやっていて、

  1. URL dispatcher
  2. URLconf
  3. urls.py

この3つの言葉が乱立していて具体的に何を意味するのかが分からなくなってきました。

もう2度と「あれ?」と思わないように、公式ドキュメントから根拠を探った結果をメモします。

結論:

  1. URL dispatcherは、仕組み全体・概念を指す単語
  2. URLconfは、urls.pyファイルを指す

URL dispatcher、URLconf、urls.pyの違い(関係)

最も端的にこれら3つの用語の関係が現れていたのはココかなと。というわけでこれを根拠に3単語の関係を読み解きます。

Django URL dispatcher

URL dispatcherは、「仕組み全体・概念」を指す

URL dispatcher は、DjangoでURLをエレガントに設計するための「仕組み全体、概念」を指します。

URL dispatcherは、このページの章立て見出しになっています。そしてこのページに延々と書かれる全ての仕組みを総称して「URL dispatcher」と呼びます。

後述するURLconfと異なり、「具体的にコレ」という(ファイルなど)実体を指すものではありません。

※厳密にURL dispatcherの仕組みを構成するモジュール/パッケージ群を指して「これがURL dispatcherだ」ということはできると思いますが...

URLconf は urls.pyファイルの別名で、同じ実体を指す

...create a Python module informally called a URLconf

とあります。

  1. moduleはファイル単体を意味する
  2. そのファイルはurls.py
  3. urls.pyが「慣習的に"URLconf"と呼ばれる」とある
    ※informallyを慣習的と訳したのは意訳。

ということは、もう URLconf と urls.py はイコールと考えて問題ありません。

他にも、

Django URL dispatcher

open the polls/urls.py URLconf and change it like so:

という風に書かれています。

↑TOP