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

如何在Django REST Framework中通过GET请求传递并获取URL参数

获取URL查询参数的实现方案(基于Django/Flask)

Django 实现方式

Django会自动解析URL中?后的查询参数,你可以直接通过request.GET对象获取:

from django.http import HttpResponse

def projects_view(request):
    # 获取单个参数,参数不存在时可指定默认值
    project_id = request.GET.get('id', None)
    a = request.GET.get('a', 0)
    b = request.GET.get('b', 0)
    c = request.GET.get('c', 0)
    
    # 一次性获取所有参数并转为字典
    all_params = request.GET.dict()
    
    # 后续业务逻辑处理
    return HttpResponse(f"ID: {project_id}, a: {a}, b: {b}, c: {c}")

路由只需匹配基础路径,无需在路由规则中定义查询参数:

# urls.py
from django.urls import path
from .views import projects_view

urlpatterns = [
    path('api/projects/', projects_view, name='projects'),
]

Flask 实现方式

Flask通过request.args对象封装了查询参数,用法和Django类似:

from flask import Flask, request

app = Flask(__name__)

@app.route('/api/projects/')
def projects_view():
    # 获取单个参数,支持默认值设置
    project_id = request.args.get('id', None)
    a = request.args.get('a', 0)
    b = request.args.get('b', 0)
    c = request.args.get('c', 0)
    
    # 转换所有参数为字典格式
    all_params = request.args.to_dict()
    
    # 业务逻辑处理
    return f"ID: {project_id}, a: {a}, b: {b}, c: {c}"

if __name__ == '__main__':
    app.run(port=8000)

注意事项

  • 查询参数默认返回字符串类型,如果需要数值类型,记得手动转换(比如int(a))
  • 框架会自动处理多值参数(如?tag=python&tag=django),可通过request.GET.getlist('tag')或request.args.getlist('tag')获取列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 05:20:32