Django(part9)--GET请求

学习笔记,仅供参考



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发起请求:

请求成功


但,若我们向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发起请求:

猜你喜欢

转载自blog.csdn.net/m0_37422217/article/details/106748578
今日推荐