在Django URL中链接首页和页面的正确方法是什么?

问题描述 投票:0回答:2

现在我正在做什么:

页面应用> 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)

这似乎很好。我可以转到主页,并且大约可以访问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')),
    path('about/', include('pages.urls')),
] + static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)

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

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

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

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

python django django-urls
2个回答
0
投票

在页面应用中,您必须创建urls.py文件并将URL链接到视图

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

并且在模板中,您可以使用其名称来调用该URL


0
投票

[如果您在应用程序中具有多个视图和单个URL,并且您希望将所有视图都放在某个URL前缀之后,则将该前缀放在urls.py根目录中。

所以可以说您有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)
© www.soinside.com 2019 - 2024. All rights reserved.