HttpRequest 和 HttpResponse 是什么?干嘛用的?
HttpRequest 是 django 接受用户发送多来的请求报文后,将报文封装到 HttpRequest 对象中去。
HttpResponse 返回的是一个应答的数据报文。render 内部已经封装好了 HttpResponse 类。
视图的第一个参数必须是 HttpRequest 对象,两点原因:表面上说,他是处理 web 请求的,所以必须是请求对象,根本上说,他是基于请求的一种 web 框架,所以,必须是请求对象。
因为 view 处理的是一个 request 对象,请求的所有属性我们都可以根据对象属性的查看方法来获取具体的信息:格式:request.属性
403 错误:表示资源不可用,服务器理解客户的请求,但是拒绝处理它,通常由于服务器上文件和目录的权限设置导致的 web 访问错误。如何解决:
(1) 把中间件注释。
(2) 在表单内部添加{% scrf_token %}
request.GET.get()取值时如果一键多值情况,get 是覆盖的方式获取的。getlist()可以获取多值。
在一个有键无值的情况下,该键名 c 的值返回空。有键无值:c: getlist 返回的是列表,空列表在无键无值也没有默认值的情况下,返回的是 None 无键无值:e:None
常见方法:
应答对象:
方式一: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()方法遍历输出这些数据