link 主页和 Django 网址中关于页面的正确方法是什么?

What is the correct way to link home and about page in django urls?

现在我正在做的是:

页面应用 > urls.py

from django.urls import path 
from . import views

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

项目 > urls.py

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('pages.urls')),
] + static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)

这似乎工作正常。我可以正常进入主页和关于页面,但我看到其他人这样做如下:

项目 > urls.py

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('pages.urls')),
    path('about/', include('pages.urls')),
] + static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)

所以基本上,在项目 urls 文件中,行

'path('about/', include('pages.urls')),'

添加并保持页面 url 与上面相同。

所以我想知道在项目 urls 文件中链接关于页面的正确方法是什么。

在页面应用程序中,您必须创建 urls.py 文件并 link url 到视图

urlpatterns = [
    path('about/', views.about, name='about'),]

并且在模板中,您可以使用名称

调用 url

如果您的应用程序中有不止一个视图和一个 url,并且您希望将所有视图都放在某个 url 前缀之后,您可以将该前缀放在 [=12] =]根。

所以假设您有 productscategories 视图,并且您希望它们位于 api 前缀之后。这意味着 /api/products//api/categories/ 那么您将在 "api" 应用程序中拥有:

from django.urls import path 
from . import views

urlpatterns = [
    path('products', views.products, name='products'),
    path('categories', views.categories, name='categories'),
]

在你的根 urls.py:

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include('api.urls')),
] + static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)