• django restframework request源码解析


     注意如果你同时使用request.body和request.data时

    request .body 需要在request.data 前使用,不然获取会抛异常

    其次request.body用户获取非表单类型数据请求体,如果只想获取表单请求参数使用request.POST

    需要获取文件使用request.FILES,

    request.data可以获取put.post.delete 类型的请求所有数据包含文件对象

    request.query_params获取get请求参数params

    request.post

    HttpRequest.POST

    包含所有给定HTTP POST参数的类字典对象,条件是请求包含表单数据。请参阅QueryDict下面的 文档。如果您需要访问请求中发布的原始或非格式数据,请HttpRequest.body改为通过属性进行访问 

    可以通过带有空POST 字典的POST发出请求-例如,如果通过POST HTTP方法请求了表单,但其中不包含表单数据。因此,您不应该使用 POST方法进行检查。而是使用(请参阅)。if request.POSTif request.method == "POST"HttpRequest.method

    POST包含文件上传信息。请参阅FILES

    HttpRequest.body

    原始HTTP请求主体为字节串。这对于以不同于常规HTML表单的方式处理数据很有用:二进制图像,XML有效负载等。对于处理常规表单数据,请使用 HttpRequest.POST

    您也可以HttpRequest使用HttpRequest.read()文件状界面 从中读取内容HttpRequest.readline()使用这些I / O流方法之一读取请求访问body属性将产生一个RawPostDataException

    一般如果表单请求需要上传文件时必须使用muti/form-data ,x-www-rform-urlencoded是无法实现文件上传的

     当请求上传mutipart/form-data时,如下:

    request.body 获取到文件字节,

    request.POST获取到参数不包含文件的querydict

    request.data  参数和文件对象堆在其中都可以拿到

    如果enctype=  'application/x-www-from-urlencoded'  时,无文件上传参数时,获取到参数

    request.body ,获取到的是,data字节

    request.POST获取到是参数querydict

    request,data 也是表单参数querydict

  • 相关阅读:
    biji001
    公司内部openStack环境信息
    def
    CI调试
    一:Java之面向对象基本概念
    STL_算法_Heap算法(堆排)(精)
    IOS开发-经常使用站点集合
    【iOS开发-47】怎样下载iOS 7.1 Simulator 以及iOS 8离线的Documentation这些文件?
    设计模式简介
    how to deal with "no such file error or diretory" error for a new programmer in QT creator
  • 原文地址:https://www.cnblogs.com/SunshineKimi/p/13975472.html
Copyright © 2020-2023  润新知