学习笔记,仅供参考 GET请求 客户端传递查询参数给服务端 URL格式: 网址?参数名1=值1参数名2=值2...参数名n=值n 比如: https://www.baidu.com/s?wd=%E5%9E%82%E8%80%B3%E5%85%94rsv_spt=1rsv_iqid=0xfd4f92ad0
学习笔记,仅供参考
GET请求
客户端传递查询参数给服务端
URL格式:
网址?参数名1=值1&参数名2=值2&...&参数名n=值n
比如:
https://www.baidu.com/s?wd=%E5%9E%82%E8%80%B3%E5%85%94&rsv_spt=1&rsv_iqid=0xfd4f92ad00024f66&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=88093251_36_hao_pg&rsv_enter=1&rsv_dl=tb&rsv_sug3=10&rsv_sug1=2&rsv_sug7=101&rsv_sug2=0&rsv_btype=i&inputT=1547&rsv_sug4=3208
服务器接收参数
判断请求方式是否是GET请求
通过request.method的值,判断请求方式是否是GET请求
if request.method == "GET":处理1
else:
处理2
获取客户端GET请求提交的数据
- 语法
request.GET.get('参数名', '默认值')
request.GET.getlist('参数名')
- 能够产生GET请求方式的场合
- https://tieba.baidu.com/f?kw=%B4%B9%B6%FA%CD%C3&fr=ala0&tpl=5
- 表单中的method为get
举个例子
views.py
def page_test01(request):value_a = request.GET['a']
HTML = "参数值为:" + value_a
return HttpResponse("请求成功" + HTML)
urls.py
urlpatterns = [path('admin/', admin.site.urls),
re_path(r'test1/', views.page_test01),
re_path(r'test2/', views.page_test02),
]
向http://127.0.0.1:8000/test1/?a=100发起请求:
请求成功
但,若我们向http://127.0.0.1:8000/test1/?b=100发起请求,则会报错:
这是因为,若在URL中国写入b=100,则相当于创建了一个字典request.GET = {“b”:“100”},由于该字典中没有a键,所以request.GET[“a”]会报错。
现在,我们更改一下视图函数:
def page_test01(request):value_a = request.GET.get("a", "没有值")
HTML = "参数值为:" + value_a
return HttpResponse("请求成功" + HTML)
再次向http://127.0.0.1:8000/test1/?b=100发起请求:
同时,我们也可以在URL中设置多个查询参数,比如http://127.0.0.1:8000/test1/?a=50&b=100
我们再更改一下视图函数:
def page_test01(request):html = ""
for k in request.GET:
html += "参数" + k + "的值为" + request.GET[k] + "<br>"
return HttpResponse("请求成功 <br>" + html)
向http://127.0.0.1:8000/test1/?a=50&b=100发起请求: