HttpRequest 介绍
刘博雅
2023-12-01
HttpRequest 介绍
1、什么是HttpRequest
HttpRequest ,请求对象,封装了请求过程中的信息
如:请求地址,源请求路径,请求参数,... ...
在 django 中,HttpRequest ,默认被作为每个视图处理函数的参数传递进来的
查看 request 的内容:
print(dir(request))
2、HttpRequest 中的主要内容
1、request.scheme 请求协议
2、request.body 请求主体
3、request.path 请求的路径
4、request.get_host() 请求的主机地址 / 域名
5、request.method 请求的方法
6、request.GET get的请求数据
7、request.POST post的请求数据
8、request.COOKIES cookies的数据
9、request.META 获取元数据
3、有关HTTP协议
1、每个请求一定会有 method
get,post,put,delete,... ...
get : 向服务器要数据时使用
传递的数据全部封装到地址栏(url)
http://xxx?id=10&name=zsf&age=38
post : 想传递数据到服务器处理的时候,用post
post的请求提交的数据全部在 "请求主体" 中
2、请求主体
只有 post 和 put 才会产生请求主体
其余请求方法都没有请求主体
4、获取 get 请求提交的数据
当发生GET请求的时候,可以通过 request.GET['名称']的方式来获取 请求提交的数据
5、csrf
跨站点攻击,通过非法请求数据破坏网站
解决方案:
1、删除中间件 settings.py 中
2、在处理函数上增加@csrf_protect
3、在 <form> 下第一行增加一个标签{%csrf_token%}
6、POST 获取数据
if request.method == 'POST':
if 'name' in request.POST and request.POST['name']
value = request.POST['name']
return HttpResponse(value)
else:
return HttpResponse("方式不对!")