DRF 解析器和渲染器

前端之家收集整理的这篇文章主要介绍了DRF 解析器和渲染器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一,DRF 解析器

根据请求头 content-type 选择对应的解析器就请求体内容进行处理。

1. 仅处理请求头content-type为application/json的请求体

 2. 仅处理请求头content-type为application/x-www-form-urlencoded 的请求体

<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;">'
)

3. 仅处理请求头content-type为multipart/form-data的请求体

django.conf.urls

4. 仅上传文件

5. 同时多个Parser

当同时使用多个parser时,rest framework会根据请求头content-type自动进行比对,并使用对应parser

6. 全局使用

注意: 个别特殊的值可以通过Django的request对象request._request来进行获取

二,DRF 渲染器

根据 用户请求URL 或 用户可接受的类型,筛选出合适的 渲染组件。用户请求URL:

    @H_404_510@http://127.0.0.1:8000/test/?format=json @H_404_510@http://127.0.0.1:8000/test.json

用户请求头:

    @H_404_510@Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8

1. json

访问URL:

    @H_404_510@http://127.0.0.1:8000/test/?format=json @H_404_510@http://127.0.0.1:8000/test.json @H_404_510@http://127.0.0.1:8000/test/ 

2. 表格

访问URL:

    @H_404_510@http://127.0.0.1:8000/test/?format=admin @H_404_510@http://127.0.0.1:8000/test.admin @H_404_510@http://127.0.0.1:8000/test/ 

3. Form表单

访问URL:

    @H_404_510@http://127.0.0.1:8000/test/?format=form @H_404_510@http://127.0.0.1:8000/test.form @H_404_510@http://127.0.0.1:8000/test/ 

4. 自定义显示模板

访问URL:

    @H_404_510@http://127.0.0.1:8000/test/?format=html @H_404_510@http://127.0.0.1:8000/test.html @H_404_510@http://127.0.0.1:8000/test/ 

5. 浏览器格式API+JSON

访问URL:

    @H_404_510@http://127.0.0.1:8000/test/?format=api @H_404_510@http://127.0.0.1:8000/test.api @H_404_510@http://127.0.0.1:8000/test/ 

注意:如果同时多个存在时,自动根据URL后缀来选择渲染器。

猜你在找的Django相关文章