当前位置 : 主页 > 编程语言 > python >

Django(part9)--GET请求

来源:互联网 收集:自由互联 发布时间:2022-06-15
学习笔记,仅供参考 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['参数名']
request.GET.get('参数名', '默认值')
request.GET.getlist('参数名')



  • 能够产生GET请求方式的场合
  • ​​https://tieba.baidu.com/f?kw=%B4%B9%B6%FA%CD%C3&fr=ala0&tpl=5​​
<a href="地址?参数名1=值1&参数名2=值2">
  • 表单中的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发起请求:

Django(part9)--GET请求_django

请求成功



但,若我们向http://127.0.0.1:8000/test1/?b=100发起请求,则会报错:

Django(part9)--GET请求_html_02

这是因为,若在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发起请求:

Django(part9)--GET请求_django_03



同时,我们也可以在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发起请求:

Django(part9)--GET请求_python_04

上一篇:Django(part13)--过滤器
下一篇:没有了
网友评论