首页 > Web开发 > 详细

restframework 解析器、url控制组件

时间:2019-09-06 09:06:27      阅读:87      评论:0      收藏:0      [点我收藏+]

一、解析器

1、分类

from rest_framework.parsers import JSONParser, FormParser, FileUploadParser, MultiPartParser

a、JSONParser

解析JSON数据类型

b、FormParser

解析urlencode数据类型

c、MultiPartParser

解析form-data数据类型

d、FileUploadParser

解析上传的文件

2、默认的解析器

DEFAULT_PARSER_CLASSES‘: [
        ‘rest_framework.parsers.JSONParser‘,
        ‘rest_framework.parsers.FormParser‘,
        ‘rest_framework.parsers.MultiPartParser‘
    ]

3、重写parser_classes

在视图类中添加

parser_classes = [JSONParser]

二、url控制

1、产生原因

restframework视图组件,通过含参的as_view()解决了两个get的问题,实现了视图类的同一,但url仍然有两条

2、解决方式

a、原来

    path(‘author/‘, views.AuthorViewSet.as_view({‘get‘: ‘list‘, ‘post‘: ‘create‘})),
    path(‘author/<pk>/‘, views.AuthorViewSet.as_view({‘get‘: ‘retrieve‘, ‘put‘: ‘update‘, ‘delete‘: ‘destroy‘})),

b、优化

from rest_framework import routers
router = routers.DefaultRouter()
router.register(‘author‘, views.AuthorViewSet)

二级分发

path(‘‘, include(router.urls)),

3、路径

^author/$ [name=‘author-list‘]
^author\.(?P<format>[a-z0-9]+)/?$ [name=‘author-list‘]
^author/(?P<pk>[^/.]+)/$ [name=‘author-detail‘]
^author/(?P<pk>[^/.]+)\.(?P<format>[a-z0-9]+)/?$ [name=‘author-detail‘]

补充

a、?format=json

http://127.0.0.1:8000/author/?format=json

作用:获取json格式的数据,没有其它装饰

b、.json

http://127.0.0.1:8000/author.json

作用:获取全部json数据

http://127.0.0.1:8000/author/6.json

作用:获取指定pk的json数据

 

restframework 解析器、url控制组件

原文:https://www.cnblogs.com/wt7018/p/11470609.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!