zoukankan      html  css  js  c++  java
  • django 请求体和请求体相关知识

    请求头ContentType

    ContentType指的是请求体的编码类型,常见的类型共有3种:

    django 如果发送post请求,或者表单提交数据。如果不设置enctype属性。

    就会以application/x-www-form-urlencoded方式提交数据。

    这就是设置请求请求体字符编码,请求体里的数据就会按照特定的字符编码格式排列。

    如:

    省略掉了):

    POST http://www.example.com HTTP/1.1
    Content-Type: application/x-www-form-urlencoded;charset=utf-8
    
    user=yuan&age=22

    2 multipart/form-data

    这是上传文件时,要用的字符编码格式。

    必须让 <form> 表单的 enctype 等于 multipart/form-data。直接来看一个请求示例:

    复制代码
    POST http://www.example.com HTTP/1.1
    Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryrGKCBY7qhFd3TrwA
    
    ------WebKitFormBoundaryrGKCBY7qhFd3TrwA
    Content-Disposition: form-data; name="user"
    
    yuan
    ------WebKitFormBoundaryrGKCBY7qhFd3TrwA
    Content-Disposition: form-data; name="file"; filename="chrome.png"
    Content-Type: image/png
    
    PNG ... content of chrome.png ...
    ------WebKitFormBoundaryrGKCBY7qhFd3TrwA--
    复制代码

    request.FILES来获取文件信息

    3 application/json

    application/json 这个 Content-Type 作为响应头大家肯定不陌生。实际上,现在越来越多的人把它作为请求头,用来告诉服务端消息主体是序列化后的 JSON 字符串。

    传过去之后request.post 是取不到值的,因为django是不会对json数据进行处理的。

    只能在相应体里,request.body里取原生的json二进制数据,要json.loads(request.body.encoding('utf-8'));转成了字典

    JSON 格式支持比键值对复杂得多的结构化数据,这一点也很有用。记得我几年前做一个项目时,需要提交的数据层次非常深,我就是把数据 JSON 序列化之后来提交的。不过当时我是把 JSON 字符串作为 val,仍然放在键值对里,以 x-www-form-urlencoded 方式提交。

  • 相关阅读:
    运动检测技术在数字化监控中的实现和应用(作者:何峻峰)
    EF BB BF的问题
    理解HTTP幂等性
    FusionCharts 分类以及各个属性 参数列表
    SQL语言包含的四个部分
    Inno Setup (安装程序制作)
    PowerDesigner 参照完整性约束(级联删除)
    java默认语法、EL、JSTL表达式,JSTL和struts Tag标签的使用总结
    修改PowerDesigner中create index的bug
    神奇的java Object ( Object和数组关系) Object数据互转
  • 原文地址:https://www.cnblogs.com/zhaoweihang/p/9336043.html
Copyright © 2011-2022 走看看