Django 中如何使用路由前缀来限制 URL 访问?

2023-04-11 00:00:00 路由 前缀 如何使用

在 Django 中,可以使用路由前缀来限制 URL 访问。这可以通过在项目的urls.py文件中设置应用程序的前缀来实现。假设我们有一个名为“app”的应用程序,并且希望所有的URL都以prefix“/app”开头。在项目的urls.py文件中,可以通过如下方式设置:

from django.urls import include, path

urlpatterns = [
    path('app/', include('app.urls')),
    # 其他 urlpatterns
]

在应用程序的urls.py文件中,我们需要在每个URL模式中添加前缀:

from django.urls import path
from . import views

urlpatterns = [
    path('app/', views.index, name='index'),
    path('app/about/', views.about, name='about'),
    # 其他 urlpatterns
]

可以看到,将前缀添加到每个URL模式中可能会变得繁琐。可以使用嵌套路由器来更容易地管理前缀。这可以通过在应用程序的urls.py文件中创建一个新的URLconf来实现:

from django.urls import include, path
from . import views

app_name = 'app'

urlpatterns = [
    path('', views.index, name='index'),
    path('about/', views.about, name='about'),
    # 其他 urlpatterns
]

然后在项目的urls.py文件中,添加带有前缀的路径:

from django.urls import include, path

urlpatterns = [
    path('app/', include('app.urls')),
    # 其他 urlpatterns
]

使用这种方法,我们可以更轻松地管理应用程序的URL模式,并确保它们都被正确地限制在预期的前缀下。例如,要访问app应用程序的首页,用户必须访问“/app/”,而要访问关于页,用户必须访问“/app/about/”。

相关文章