1.什么是HttpRequest
HttpRequest,就是对请求对象的封装,里面封装的是请求过程中的所有信息。在Django中HttpRequest被封装成request对象并封装到视图处理函数中,在调用视图时自动传入 2.HttpRequest中的主要内容可以使用print(dir(request))查看里面所有的属性及方法。
1.request.scheme : 请求协议 2.request.body : 请求主体 3.request.path : 请求路径 4.request.get_full_path() : 请求完整的请求路径 5.request.get_host() : 请求的主机地址 / 域名 6.request.method : 主要用于判断是否是“GET”或是“POST”方法 7.request.GET : 封装了get请求方式所提交的数据 8.request.POST : 封装了post请求方式所提交的数据 9.request.COOKIES : 封装了 cookies 中的所有数据 10.request.META : 封装了请求的元数据 request.META.HTTP_REFERER : 封装了请求的源地址3.获取请求提交的数据
1.get 请求 1.获取数据 request.GET['名称'] request.GET.get('名称') request.GET.getlist('名称') 2.使用get方式提交数据的场合 1.表单中 method 为get 的时候 2.地址栏上拼查询字符串的时候 http://localhost:8000/01-request/?id=1&name=xxx注意:
url(r'^01-request/(\d{4})/(\d{1,})',xxx) http://localhost:8000/01-request/2018/10以上方式提交的数据不能使用request.GET来获取,因为以上的方式是 Django 标准而并非 HTTP 标准
2.post 请求
1.获取数据 request.POST['名称'] request.POST.get('名称') request.POST.getlist('名称') 2.使用POST方式提交数据的场合 1.使用表单提交时可以使用post 3.CSRF verification failed (403) CSRF : Cross-Site Request Forgery 跨站点 请求 伪装 解决方案: 1.取消csrf的验证:删除 settings.py中 MIDDLEWARE 中的 CsrfViewMiddleware 中间件 2.在处理函数上增加装饰器:@csrf_protect 3.可以在 表单中的 第一行增加:{% csrf_token %}