一、定义

1、无论GET还是POST,统一都由视图函数接收请求,通过判断request.method区分具体的请求动作。

2、

 

 

二、GET请求

1、GET请求动作,一般用于向服务器获取数据

2、能够产生GET请求的场景:

(1)浏览器地址中输入URL,回车,即产生一个GET请求

(2)<a href="地址?参数=值&参数=值">

(3)form表单中的method为get----使用较少

3、GET请求方式中,如果有数据需要传递给服务器,通常会用查询字符串(Query String)传递(注意:不要传递敏感参数)

4、URL格式:xxx?参数名1=值1&参数名2=值2...

  如:http://127.0.0.1:8000/page1?a=100&b=200

  服务器端接收参数

5、获取GET请求传参的方法。

  请求对象HttpRequest.GET是一个类字典对象,包含了所有传递过来的参数,可以通过字典解析参数的方式获取传递的参数

(1)HttpRequest.GET['参数名']

(2)HttpRequest.GET.get('参数名' , '默认值')

(3)HttpRequest.GET.getlist('参数名')  ----针对查询的同一个key输入多个值的情况,

  例如:http://127.0.0.1:8000/page1?a=100&a=200。

       使用HttpRequest.GET.getlist('a')可以将所有的值当成list输出。

5、练习:在视图函数view中新增一个get请求处理函数,实现对GET传参的解析。

(1)新增视图函数:

 

 

(2)新增路由

 

 

(3)测试

 

 

 

 

 

三、POST请求

1、POST获取参数的方式与GET是一样的。

 

 注意:csrf值django出于安全考虑设计的防火墙,后续会讲解如何解决,这里为了演示POST请求的过程,先直接注释掉setting.py文件中的先关配置,如下:

 

 

2、练习:新建一个POST处理视图函数,实现对POST提交参数的输出。

(1)在原GET视图函数上增加逻辑处理分支,并新建一个简单的HTML文件,用于接收参数。

 

 (2)url保持不变

(3)测试

地址栏先输入一个GET请求:

 

 再输入参数:

 

 

 

 终端输出

 

 

 

三、总结

1、django的GET和POST请求可以通过HttpRequest.method来区分

2、GET和POST请求的参数可以通过类字典对象HttpRequest.GET或者HttpRequest.POST来获取、解析

3、django对于POST请求有安全保护机制。

 

 posted on 2022-04-23 23:04  佩剑君子  阅读(1888)  评论(0编辑  收藏  举报