1. ホーム
  2. python

[解決済み] django 2.0のurls.pyでpath()とurl()のどちらを使うのがいいのでしょうか?

2022-04-25 21:53:55

質問

djangoのオンラインコースでは、講師が私たちに url() 関数でビューを呼び出し、urlpatterns リストで正規表現を利用します。他にもyoutubeでこのような例を見たことがあります。 例

from django.contrib import admin
from django.urls import include
from django.conf.urls import url

urlpatterns = [
    path('admin/', admin.site.urls),
    url(r'^polls/', include('polls.urls')),
]


#and in polls/urls.py

urlpatterns = [        
    url(r'^$', views.index, name="index"),
]

しかし、Django のチュートリアルを見ていると、彼らは path() の代わりに、例えば

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name="index"),        
]

さらに、正規表現は path() 関数を使用するように path(r'^$', views.index, name="index") を見つけることはできません。 mysite.com/polls/ ビューを表示します。

を使用していますか? path() 正規表現マッチングを使用しない方法は、今後も適切な方法ですか?また url() のほうが強力だが、複雑なので path() ということでしょうか?それとも、仕事によって道具が違うということなのでしょうか?

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

に関するDjangoのドキュメントから url

<ブロッククオート

url(regex, view, kwargs=None, name=None) この機能 のエイリアスです。 django.urls.re_path() . この機能は将来的に廃止される可能性があります。 を使用します。

との主な違い path re_path は、その path は正規表現なしでルートを使用します。

を使用することができます。 re_path は複雑な正規表現の呼び出しに使用し、単に path 単純なルックアップの場合