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

Django的urls.py中能否配置带问号参数的path路由路径?

Django urls.py 带查询参数路径写法问题解答

结论

你给出的写法是不可行的,具体原因和正确方案如下:

  • 原因:Django路由系统中的path()、re_path()方法仅匹配URL的路径部分,也就是?符号之前的内容,?之后的内容属于查询参数,不会被路由规则捕获匹配。如果你把?写在路由路径里,Django会将其识别为路径的普通字符,无法匹配到实际携带查询参数的请求。
  • 正确处理方案分两种场景:
    1. 如果你就是要使用?传递查询参数:
      路由仅需要配置路径部分即可,代码为:
    path('article/', article.site.urls)
    
    后续在对应的视图函数中,直接从request.GET中提取参数即可,示例代码:
    def your_view(request):
        date = request.GET.get('date') # 即可拿到url中?date=xxx的参数值
        # 后续业务逻辑
    
    1. 如果你希望参数直接作为路径的一部分而非查询参数:
      可以使用Django自带的路径转换器语法,代码示例:
    # 可根据实际参数类型替换str为int、slug等转换器
    path('article/<str:date>/', article.site.urls)
    
    该写法可以匹配/article/20240601/这类路径,视图函数可以直接接收date作为入参使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:06:03