Django 中如何使用路由前缀来限制 URL 访问?
在 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/”。
相关文章