restframework 解析器、url控制组件

一、解析器

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数据

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

时间: 2024-11-09 11:27:33

restframework 解析器、url控制组件的相关文章

django restframework解析器和分页

解析器 由来 django请求的原始数据是放到request.body当中,django默认的解析器只负责解析同时满足下面两个条件的数据 请求头 Content-Type: application/x-www-form-urlencoded 数据格式要求name=alex&age=18 只要这两个条件有一个不满足,django默认的解析器就不会把数据解析到request.POST里. 情况一: $.ajax({ url: ... type: POST, # 请求头默认是 application/

rest-framework解析器

解析器 1.json解析器 发一个json格式的post请求.后台打印: request_data---> {'title': '北京折叠'} request.POST---> <QueryDict: {}> 2.urlencode解析器 request_data---> <QueryDict: {'title': ['北京'], 'price': ['122']}> request.POST---> <QueryDict: {'title': ['北

RestFramework之解析器源码

一,restframework中的解析器 在restframework中,默认可以解析JSONParser, FormParser, MultiPartParser(json数据, urlencode数据, 二进制文件类型数据(图片,视频等))这三种数据格式: RestFramework中,当我们使用CBV写视图函数,继承RestFramework中的APIView时,只要我们在自己写的CBV类中,定义了  parser_classes = [ ]这个属性,那么restframework就会根据

springmvc 解析器无法映射controller 配置的URL

搭建springmvc时,配置文件一切正常,项目运行成功,却无法响应http请求,查看log是因为没有对用url的controller,首先检查controller有没有被实例化,后来发现没有,因为没有引入spring-bean的相关包,好吧粗心....  But 引入后,还是同样的错误,找来找去毫无破绽啊,尼玛找度娘.....最后发现: <mvc:resources mapping="/images/**" location="/WEB-INF/images/&quo

python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding:utf-8from com.wenhy.crawler_baidu_baike import url_manager, html_downloader, html_parser, html_outputer print "爬虫百度百科调度入口" # 创建爬虫类class SpiderMai

Spring MVC系列:(2)视图解析器、URL映射器、适配器

1.默认的URL映射器.适配器和视图解析器 SpringMVC提供了默认的URL映射器.适配器和视图解析器. 在上一文中,springmvc-helloworld.xml内容如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"     xmlns:mvc="http://

Django框架深入了解_04(DRF之url控制、解析器、响应器、版本控制、分页)

一.url控制 基本路由写法:最常用 from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^books/', views.Books.as_view()), url(r'^book/', views.Book.as_view()), url(r'^login/

DRF url控制 解析器 响应器 版本控制 分页(常规分页,偏移分页,cursor游标分页)

url控制 第二种写法(只要继承了ViewSetMixin) url(r'^pub/$',views.Pub.as_view({'get':'list','post':'create'})), #获取所有记得路由后面加$结束符 #pub/?format=json url(r'^pub\.(?P<format>\w+)$',views.Pub.as_view({'get':'list','post':'create'})), #pub.json url(r'^pub/(?P<pk>\

[Python自学] restframework (5) (解析器)

一.数据解析器 1.Django默认的数据解析 在我们使用django框架时,浏览器如果发送以下类型的POST数据: Content-Type=application/x-www-form-urlencoded Content-Type=application/form-data 则django会自动帮我们将请求体中的数据转换为字典,保存在request.POST中. 但是,如果浏览器发送的是json数据: Content-Type=application/json 则django无法为我们转换