HttpRequest 和 HttpResponse有什么区别

242 篇文章 11 订阅
34 篇文章 1 订阅

分别是做什么的

  • 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 访问错误。如何解决:

    1. 把中间件注释。
    2. 在表单内部添加{% 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()方法遍历输出这些数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值