Sevencat
Sevencat

Reputation: 21

What does django urlpattern path argument empty (' ') meaning?

what does path('') in urls.py from project mean?

This is urls.py from project.

from django.contrib import admin
from django.urls import path, include
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myapp.urls'))
]

And this is urls.py from app

urlpatterns = [
    path('', views.index),
    path('create/', views.create),
    path('read/id/', views.read),
    ]

Is path('')in urls.py from project just mean empty?

If it is, why when I write localhost:8080/create

It will still work? I just routing path('') in urls.py from project Does it mean "except admin/" ..?

Upvotes: 1

Views: 48

Answers (1)

willeM_ Van Onsem
willeM_ Van Onsem

Reputation: 477210

it means that the paths below myapp.urls will be added without any prefix, so that means that the paths will be:

admin/    … (all admin urls)
/         → views.index
create/   → views.create
read/id/  → views.read

likely however the path to read should contain a URL parameter, not id in the real path, so:

urlpatterns = [
    path('', views.index),
    path('create/', views.create),
    path('read/<int:id>/', views.read),
]

If you had added a value to the path, like:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('foo/', include('myapp.urls')),
]

then the paths would be:

admin/        … (all admin urls)
foo/          → views.index
foo/create/   → views.create
foo/read/id/  → views.read

Upvotes: 2

Related Questions