一,DRF 解析器
根据请求头 content-type 选择对应的解析器就请求体内容进行处理。
1. 仅处理请求头content-type为application/json的请求体
url(r<span style="color: #800000;">'<span style="color: #800000;">test/<span style="color: #800000;">',TestView.as_view(),name=<span style="color: #800000;">'<span style="color: #800000;">test<span style="color: #800000;">'<span style="color: #000000;">),]
parser_classes =<span style="color: #000000;"> [JSONParser,]
</span><span style="color: #0000ff;">def</span> post(self,request,*args,**<span style="color: #000000;"><a href="/tag/kwargs/" target="_blank" class="keywords">kwargs</a>):
</span><span style="color: #0000ff;">print</span><span style="color: #000000;">(request.content_type)
</span><span style="color: #008000;">#</span><span style="color: #008000;"> <a href="/tag/huoqu/" target="_blank" class="keywords">获取</a>请求的值,并使用对应的JSONParser进行处理</span>
<span style="color: #0000ff;">print</span><span style="color: #000000;">(request.data)
</span><span style="color: #008000;">#</span><span style="color: #008000;"> application/x-www-form-urlencoded 或 multipart/form-data时,request.POST中才有值</span>
<span style="color: #0000ff;">print</span><span style="color: #000000;">(request.POST)
</span><span style="color: #0000ff;">print</span><span style="color: #000000;">(request.FILES)
</span><span style="color: #0000ff;">return</span> Response(<span style="color: #800000;">'</span><span style="color: #800000;">POST请求,响应<a href="/tag/neirong/" target="_blank" class="keywords">内容</a></span><span style="color: #800000;">'</span><span style="color: #000000;">)
</span><span style="color: #0000ff;">def</span> put(self,**<span style="color: #000000;"><a href="/tag/kwargs/" target="_blank" class="keywords">kwargs</a>):
</span><span style="color: #0000ff;">return</span> Response(<span style="color: #800000;">'</span><span style="color: #800000;">PUT请求,响应<a href="/tag/neirong/" target="_blank" class="keywords">内容</a></span><span style="color: #800000;">'</span>)</pre>
2. 仅处理请求头content-type为application/x-www-form-urlencoded 的请求体
url(r<span style="color: #800000;">'<span style="color: #800000;">test/<span style="color: #800000;">',]
<div class="cnblogs_code" onclick="cnblogs_code_show('cfbfe370-0b7c-46b0-8032-35bd8563a1e1')">
<img id="code_img_closed_cfbfe370-0b7c-46b0-8032-35bd8563a1e1" class="code_img_closed" src="/res/2019/02-14/22/1c53668bcee393edac0d7b3b3daff1ae.gif" alt=""><img id="code_img_opened_cfbfe370-0b7c-46b0-8032-35bd8563a1e1" class="code_img_opened" style="display: none;" onclick="cnblogs_code_hide('cfbfe370-0b7c-46b0-8032-35bd8563a1e1',event)" src="/res/2019/02-14/22/405b18b4b6584ae338e0f6ecaf736533.gif" alt=""><div id="cnblogs_code_open_cfbfe370-0b7c-46b0-8032-35bd8563a1e1" class="cnblogs_code_hide">
rest_framework.views rest_framework.response rest_framework.request rest_framework.parsers <span style="color: #0000ff;">class<span style="color: #000000;"> TestView(APIView):
parser_classes =<span style="color: #000000;"> [FormParser,**<span style="color: #000000;">kwargs):
<span style="color: #0000ff;">return Response(<span style="color: #800000;">'<span style="color: #800000;">PUT请求,响应内容<span style="color: #800000;">')