美文网首页工作生活
Django中HttpRequest 和 HttpRespon

Django中HttpRequest 和 HttpRespon

作者: EchoPython | 来源:发表于2019-07-15 15:33 被阅读0次

    分别是做什么的

    • 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()方法遍历输出这些数据

    相关文章

      网友评论

        本文标题:Django中HttpRequest 和 HttpRespon

        本文链接:https://www.haomeiwen.com/subject/wiqncctx.html