分别是做什么的
- HttpRequest 是 django 接受用户发送多来的请求报文后,将报文封装到 HttpRequest 对象中去。
- HttpResponse 返回的是一个应答的数据报文。render 内部已经封装好了 HttpResponse 类。
- 视图的第一个参数必须是 HttpRequest 对象,两点原因:表面上说,他是处理 web 请求的,所以 必须是请求对象,根本上说,他是基于请求的一种 web 框架,所以,必须是请求对象。
使用
因为 view 处理的是一个 request 对象,请求的所有属性我们都可以根据对象属性的查看方法来获 取具体的信息:格式:request.属性
-
request.path 请求页面的路径,不包含域名
-
request.get_full_path 获取带参数的路径 r
-
equest.method 页面的请求方式
-
request.GET GET 请求方式的数据
-
request.POST POST 请求方式的数据
-
request.COOKIES 获取
-
cookie request.session 获取 session
-
request.FILES 上传图片(请求页面有 enctype="multipart/form-data"属性时 FILES 才有数据。 ?a=10 的键和值时怎么产生的,键是开发人员在编写代码时确定下来的,值时根据数据生成或者用户 填写的,总之是不确定的。
-
403 错误:表示资源不可用,服务器理解客户的请求,但是拒绝处理它,通常由于服务器上文件和目录 的权限设置导致的 web 访问错误。如何解决:
- 把中间件注释。
- 在表单内部添加{% scrf_token %} request.GET.get()取值时如果一键多值情况,get 是覆盖的方式获取的。getlist()可以获取多个值,在一个有键无值的情况下,该键名 c 的值返回空。有键无值:c:
-
getlist 返回的是列表,空列表在无键无值也没有默认值的情况下,返回的是 None 无键无值:e:None
HttpResponse 常见属性:
- content: 表示返回的内容
- charset: 表示 response 采用的编码字符集,默认是 utf-8
- status_code:返回的 HTTP 响应状态码 3XX 是对请求继续进一步处理,常见的是重定向。
常见方法:
- init:创建 httpResponse 对象完成返回内容的初始化
- set_cookie:设置 Cookie 信息:格式:set_cookies(‘key’,‘value’,max_age=None,expires=None)
- max_age 是一个整数,表示指定秒数后过期,expires 指定过期时间,默认两个星期后过期。 write 向响应体中写数据
应答对象:
- 方式一:render(request,“index.html”) 返回一个模板 render(request,“index.html”, context) 返回一个携带动态数据的页面
- 方式二:render_to_response(“index.html”) 返回一个模板页面
- 方式三:redirect("/") 重定向
- 方式四:HttpResponseRdeirect("/") 实现页面跳转功能
- 方式五:HttpResponse(“itcast1.0”)在返回到额页面中添加字符串内容
- 方式六:HttpResponseJson() 返回的页面中添加字符串内容。
JsonResponse 创建对象时候接收字典作为参数,返回的对象是一个 json 对象。
能接收 Json 格式数据的场景,都需要使用 view 的 JsonResponse 对象返回一个 json 格式数据 ajax 的使用场景,页面局部
刷新功能。ajax 接收 Json 格式的数据。 在返回的应答报文中,可以看到 JsonResponse 应答的 content-Type 内容是
application/json ajax 实现网页局部刷新功能:
- ajax 的 get()方法获取请求数据
- ajax 的 each()方法遍历输出这些数据