Django第9部分中,如何实现有效的GET请求处理?

2026-06-10 22:581阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计762个文字,预计阅读时间需要4分钟。

Django第9部分中,如何实现有效的GET请求处理?

学习笔记,仅供参考。GET请求,客户端传递查询参数给服务端。URL格式:地址?参数名1=值1&参数名2=值2...&参数名n=值n。例如:https://www.baidu.com/s?wd=企鹅rsv_spt=1rsv_iqid=0xfd4f92ad0

学习笔记,仅供参考



GET请求



客户端传递查询参数给服务端

URL格式:

网址?参数名1=值1&参数名2=值2&...&参数名n=值n



比如:

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请求方式的场合
  • ​​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),

]



向127.0.0.1:8000/test1/?a=100发起请求:

请求成功



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

这是因为,若在URL中国写入b=100,则相当于创建了一个字典request.GET = {“b”:“100”},由于该字典中没有a键,所以request.GET[“a”]会报错。



现在,我们更改一下视图函数:

Django第9部分中,如何实现有效的GET请求处理?

def page_test01(request):
value_a = request.GET.get("a", "没有值")
HTML = "参数值为:" + value_a
return HttpResponse("请求成功" + HTML)

再次向127.0.0.1:8000/test1/?b=100发起请求:



同时,我们也可以在URL中设置多个查询参数,比如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)

向127.0.0.1:8000/test1/?a=50&b=100发起请求:

本文共计762个文字,预计阅读时间需要4分钟。

Django第9部分中,如何实现有效的GET请求处理?

学习笔记,仅供参考。GET请求,客户端传递查询参数给服务端。URL格式:地址?参数名1=值1&参数名2=值2...&参数名n=值n。例如:https://www.baidu.com/s?wd=企鹅rsv_spt=1rsv_iqid=0xfd4f92ad0

学习笔记,仅供参考



GET请求



客户端传递查询参数给服务端

URL格式:

网址?参数名1=值1&参数名2=值2&...&参数名n=值n



比如:

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请求方式的场合
  • ​​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),

]



向127.0.0.1:8000/test1/?a=100发起请求:

请求成功



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

这是因为,若在URL中国写入b=100,则相当于创建了一个字典request.GET = {“b”:“100”},由于该字典中没有a键,所以request.GET[“a”]会报错。



现在,我们更改一下视图函数:

Django第9部分中,如何实现有效的GET请求处理?

def page_test01(request):
value_a = request.GET.get("a", "没有值")
HTML = "参数值为:" + value_a
return HttpResponse("请求成功" + HTML)

再次向127.0.0.1:8000/test1/?b=100发起请求:



同时,我们也可以在URL中设置多个查询参数,比如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)

向127.0.0.1:8000/test1/?a=50&b=100发起请求: