在 django 在线课程中,讲师让我们使用该url()函数调用视图并使用 urlpatterns 列表中的正则表达式。我在 youtube 上看到了其他例子。例如
url()
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()了例如:
path()
from django.urls import path from . import views urlpatterns = [ path('', views.index, name="index"), ]
此外,正则表达式似乎不适用于该path()函数,因为使用 apath(r'^$', views.index, name="index")不会找到mysite.com/polls/视图。
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()。它可能会在未来的版本中被弃用。
url(regex, view, kwargs=None, name=None)
django.urls.re_path()
path和之间的主要区别在于re_path使用path没有正则表达式的路由
path
re_path
您可以re_path用于复杂的正则表达式调用并仅path用于更简单的查找