You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django使用include引入子路由时如何定位调用index等对应视图函数

Django的路由匹配遵循「根路由先匹配前缀,子路由匹配剩余路径」的逻辑,完整匹配流程如下:

  1. 先匹配项目根路由mysite/urls.py的urlpatterns列表
    Django会把用户请求的URL和urlpatterns里的规则从上到下逐一比对,当请求路径以polls/开头时,就会命中path('polls/', include('polls.urls'))这条规则。此时Django会把路径中已经匹配成功的polls/前缀截断,把剩下的路径部分交给polls/urls.py的子路由列表继续匹配。
  2. 子路由匹配截断后的剩余路径
    比如你在polls/views.py里新增了一个自定义视图:
def custom_view(request):
    return HttpResponse("这是新增的自定义视图")

之后你需要在polls/urls.py的urlpatterns里补充对应的路径规则:

urlpatterns = [
    path('', views.index, name='index'),
    path('custom/', views.custom_view, name='custom_view'),
]

此时如果用户请求/polls/,截断polls/之后剩余的是空字符串,会匹配到第一条path('',...)规则,调用index函数;如果用户请求/polls/custom/,截断后剩余的是custom/,会匹配到第二条规则,调用你新增的custom_view函数。

还有两个需要注意的匹配规则:

  • 所有路由规则都是按从上到下的顺序匹配的,只要匹配到第一条符合的规则就会立刻停止,不会继续校验后面的规则
  • 如果路径规则里定义了动态参数,匹配到的参数会自动传入对应的视图函数作为入参

内容的提问来源于stack exchange,提问作者duskdusk13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 05:30:00