如何在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
相关产品推荐
相关产品推荐

