一、定义
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请求有安全保护机制。