HttpRequest对象
1、django框架通过对象接收浏览器的请求
2、通过HttpRequest对象解析请求报文
3、通过请求的路径path调用对应的视图views方法
URL路径参数
book/python/
位置参数
url(r'^(\w+)/(\w+)/$')
关键字参数
给分组取别名
url(r'^(?P<book>\w+)/(?P<python>\w+)/$')
2 Django中的QueryDict对象
HttpRequest对象的属性GET、POST都是QueryDict类型的对象
1、get(key,defaultval)
2、getlist(key,defaultval)
3. 查询字符串Query String
获取请求路径中的查询字符串参数(形如?k1=v1&k2=v2),可以通过request.GET属性获取,返回QueryDict对象。
4.请求体POST
请求体数据格式不固定,可以是表单类型字符串,可以是JSON字符串,可以是XML字符串,应区别对待。
可以发送请求体数据的请求方式有POST、PUT、PATCH、DELETE。
Django默认开启了CSRF防护,会对上述请求方式进行CSRF防护验证,在测试时可以关闭CSRF防护机制,方法为在settings.py文件中注释掉CSRF中间件,
1、表单类型 form data
reququest.POST.get('name')
2、非表单类型 non-form data json数据
json_str = request.body.decode()
data = json.loads(json_str)
5.请求头 META
1、CONTENT_TYPE
6.其他常用属性
- method
- user
- path
- encoding
- FILES
HttpResponse对象
1、构造方法
HttpResponse(content=响应体, content_type=响应体数据类型, status=状态码)
2、JsonResponse子对象
JsonResponse({字典})
3、redirect重定向