4, Django获取请求参数
程序员文章站
2022-07-14 22:33:23
...
接着上一篇播客代码
演示代码地址:
链接:https://pan.baidu.com/s/1oE88TKRQ6Avp3_UI2msL5Q
密码:g9qj
1, 为什么要获取请求参数?
- 前后台交互的需要, 譬如:
- a: 注册用户: 需要携带用户名, 手机号, 密码, 验证码信息
- b: 用户购物: 需要携带, 商品id, 商品名称, 商品价格信息
- c: 用户转账: 需要携带, 对方账户, 转账多少钱信息
- 等等…
2, 前台携带请求参数有哪些方式?
-
a, 查询字符串
- 譬如: http://127.0.0.1:8000?name=zhangsan&age=13
- 参数信息是: zhangsan, 13
-
b, 资源分隔符携带
- 譬如: http://127.0.0.1:8000/zhangsan/23
- 参数信息是: zhangsan, 13
-
c, 请求体
- 代码不易演示, 我们通过工具postman来:
- 参数信息是: zhangsan, 13
- 代码不易演示, 我们通过工具postman来:
-
d, 请求头
- 代码不易演示, 我们通过工具postman来:
- 参数信息是: zhangsan, 13
- 代码不易演示, 我们通过工具postman来:
3, 如何获取前台的几种参数
-
a, 查询字符串携带参数
-
1, 根路由(urls.py)
urlpatterns = [ path('admin/', admin.site.urls), # 添加 path('users/', include('users.urls')) ]
-
2, 子路由(users/urls.py)
from django.conf.urls import url from . import views urlpatterns = [ url(r'^index/$', views.index), #1,查询字符串路由 url(r'^$', views.query_string), ]
-
3, 视图(users/views.py)
# index函数, 上一篇播客中有省略 # 1,查询字符串视图 def query_string(request): # 获取参数 name = request.GET.get("name") age = request.GET.get("age") # 打印参数 print("name = " + name) print("age = " + age) return HttpResponse("查询字符串获取参数")
-
4, 浏览器测试
- 浏览器
- pycharm控制台
- 浏览器
-
-
b, 资源分隔符携带参数
- 1, 根据路, 和上面a一样
- 2, 子路由(users/urls.py)
from django.conf.urls import url from . import views urlpatterns = [ url(r'^index/$', views.index), #1,查询字符串路由 url(r'^$', views.query_string), # 2,资源分隔符携带 url(r'^(?P<name>[a-z]+)/(?P<age>\d+)/$', views.resource_function), ]
- 3, 视图(users/views.py)
# 2, 资源分隔符携带 def resource_function(request,name,age): # 打印参数 print("name = " + name) print("age = " + age) return HttpResponse("资源分隔符获取参数")
- 4, 浏览器测试
- 浏览器
- 控制台
- 浏览器
-
c, 请求体携带参数
-
1, 根据路, 和上面a一样
-
2, 子路由(users/urls.py)
from django.conf.urls import url from . import views urlpatterns = [ url(r'^index/$', views.index), #1,查询字符串路由 url(r'^$', views.query_string), # 2,资源分隔符携带 url(r'^(?P<name>[a-z]+)/(?P<age>\d+)/$', views.resource_function), # 3,请求体携带参数 url(r'^body/$', views.body_function), ]
-
3, 视图(users/views.py)
# 3,请求体携带参数 def body_function(request): # 获取参数 data = request.body.decode() # 打印参数 print(data) return HttpResponse("请求体携带参数")
-
4, postman测试
- postman发送请求
- pycharm控制台输出
- postman发送请求
-
-
d, 请求头
-
1, 根路由, 和上面a一样
-
2, 子路由(users/urls.py)
from django.conf.urls import url from . import views urlpatterns = [ url(r'^index/$', views.index), #1,查询字符串路由 url(r'^$', views.query_string), # 2,资源分隔符携带 url(r'^(?P<name>[a-z]+)/(?P<age>\d+)/$', views.resource_function), # 3,请求体携带参数 url(r'^body/$', views.body_function), # 4,请求头携带参数 url(r'^header/$', views.header_function), ]
-
3, 类视图(users/views.py)
# 4,请求头携带参数 def header_function(request): # 获取参数 name = request.headers.get("name") age = request.headers.get("age") # 打印参数 print("name = " + name) print("age = " + age) return HttpResponse("请求头携带参数")
-
4, postman测试
- postman
- 控制台输出
- postman
-
若有不清楚的, 添加QQ群
免费答疑服务: 772044423
推荐阅读
-
java 获取request中的请求参数代码详解
-
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
-
Servlet | Request 对象获取请求参数的通用方式
-
Android拦截并获取WebView内部POST请求参数的实现方法
-
JS获取url参数,JS发送json格式的POST请求方法
-
基于express中路由规则及获取请求参数的方法
-
jsp页面中获取servlet请求中的参数的办法详解
-
django开发post接口简单案例,获取参数值的方法
-
记录spring-cloud-gateway获取post请求body参数,以及后端服务处理后的响应参数过程 gateway:2.2.0.RELEASE
-
CodeIgniter RestServer中put请求获取不到参数的问题解决