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

如何在urls.py中配置形如localhost:8000/v1/user?id=1的URL?

实现带查询参数的URL(Django)

你要的localhost:8000/v1/user?id=1这类URL,其中?id=1属于查询参数,不需要在urls.py里直接定义匹配规则,只需配置路径部分,再在视图函数中获取参数即可,具体步骤如下:

1. 配置路径规则

项目根urls.py

先配置版本前缀,引入对应app的路由:

from django.urls import path, include

urlpatterns = [
    path('v1/', include('your_app.urls')),  # 替换成你的app名称
]

对应app的urls.py

定义user路径的路由:

from django.urls import path
from . import views

urlpatterns = [
    path('user/', views.user_detail, name='user-detail'),
]

2. 在视图中获取查询参数

在app的views.py里编写视图函数,通过request.GET.get()获取id参数:

from django.http import HttpResponse

def user_detail(request):
    user_id = request.GET.get('id')  # 获取查询参数,无参数时返回None
    if not user_id:
        return HttpResponse('请提供id参数')
    # 这里可根据user_id执行数据库查询等业务逻辑
    return HttpResponse(f'当前用户ID:{user_id}')

3. 测试访问

启动Django服务后,访问localhost:8000/v1/user?id=1,就能看到视图返回的对应内容。

补充说明

  • 查询参数是可选的,如果需要强制要求id参数,可在视图中增加校验逻辑(比如返回400错误)。
  • 若要实现RESTful风格的路径参数(如/v1/user/1),才需要在urls.py里定义path('user/<int:user_id>/', views.user_detail),但你需求的是带?id=1的查询参数,按上述步骤即可实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 07:20:53