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

Django URL传参报错:访问localhost:8000/streamers/1234匹配失败

解决Django URL路径匹配失败的问题

嘿,我一眼就揪出你遇到的问题根源了!你的URL配置里有个明显的语法错误,导致Django没法正确匹配请求路径。

问题分析

你当前的正则URL模式写法有误:

url(r'^streamers/(?P[0-9]+)/$', views.streamer, name='streamer'),

这里的正则命名捕获组语法不完整——(?P)后面必须跟尖括号包裹的参数名(比如<id>),正确写法应该是(?P<id>[0-9]+)。你漏掉了<id>部分,导致这个正则表达式无效,Django自然匹配不到streamers/34/这类路径。

另外你注释掉的那行配置也有问题:path(r'^streamers/<int:id>/', ...)是混合了path语法和正则符号的错误写法,path不需要^和$这类正则边界符,直接用路径转换器即可。

两种正确的配置方案

方案1:使用Django推荐的path语法(更简洁)

path是Django 2.0+主推的URL配置方式,不用写正则,直接用路径转换器(比如<int:id>):

from django.urls import path

urlpatterns = [
    path('streamers/<int:id>/', views.streamer, name='streamer'),
]

方案2:使用正则风格的re_path(原url方法)

如果你习惯用正则表达式,要修正命名捕获组的语法:

from django.conf.urls import url  # 或者 from django.urls import re_path

urlpatterns = [
    url(r'^streamers/(?P<id>[0-9]+)/$', views.streamer, name='streamer'),
]

最后提醒

修改完URL配置后,一定要重启Django开发服务器,确保新配置生效。之后再访问localhost:8000/streamers/1234或者streamers/34/,应该就能正常匹配到对应的视图函数了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:23:09