Is it better to use path() or url() in urls.py for django 2.0?
In a django online course, the instructor has us use the
url() function to call views and utilize regular expressions in the urlpatterns list. I've seen other examples on youtube of this. e.g.
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"), ]
However, in going through the Django tutorial, they use
path() instead e.g.:
from django.urls import path from . import views urlpatterns = [ path('', views.index, name="index"), ]
Furthermore regular expressions don't seem to work with the
path() function as using a
path(r'^$', views.index, name="index") won't find the
path() without regex matching the proper way going forward? Is
url() more powerful but more complicated so they're using
path() to start us out with? Or is it a case of different tools for different jobs?
From Django documentation for url
url(regex, view, kwargs=None, name=None)This function is an alias to
django.urls.re_path(). It’s likely to be deprecated in a future release.
You can use
re_path for complex regex calls and use just
path for simpler lookups