Django框架深入了解_04(DRF之url控制、解析器、响应器、版本控制、分页)(一)
閱讀目錄
一、url控制
- 基本路由寫法:最常用
- 第二種寫法:繼承ModelViewSet
- 第三種寫法:(自動生成路由,必須繼承ModelViewSet)
二、解析器
-
前端不同的數據格式請求,后端解析得到的結果:
-
解析器介紹:
-
解析器的作用:
-
解析器的使用:
三、響應器:
-
響應器的作用:
-
響應器的使用:
-
響應器的內置渲染器:
四、版本控制
-
全局使用:
-
局部使用:
五、DRF分頁器
-
常規分頁
-
偏移分頁
-
補充:get_paginated_response的使用
-
cursor游標分頁
一、url控制
回到頂部
基本路由寫法:最常用
第二種寫法:繼承ModelViewSet
基于mixins來封裝的視圖就是使用了繼承ModelViewSet,然后改寫路由:
from django.conf.urls import url from app01 import views urlpatterns = [url(r'^publish/$', views.PublishView.as_view({'get':'list','post':'create'})),url(r'^publish/(?P<pk>\d+)/$', views.PublishView.as_view({'get':'retrieve','put':'update','delete':'destroy'})), ]第三種寫法:(自動生成路由,必須繼承ModelViewSet)
#SimpleRouter 自動生成兩條路由
實現過程:
tips:使用python的manage.py的shell環境進行快速添加數據用于測試:
pycharm>>Terminal:
views.py代碼
from django.shortcuts import render from rest_framework.response import Response# Create your views here. from app01 import models from app01.MySer import PublishSer from rest_framework.viewsets import ModelViewSetclass PublishDetails(ModelViewSet):queryset = models.Publish.objects.all()serializer_class = PublishSerurls.py代碼
from django.conf.urls import url, include from django.contrib import admin from app01 import viewsfrom rest_framework.routers import SimpleRouter,DefaultRouter router = SimpleRouter() router.register('publish', views.PublishDetails)urlpatterns = [url(r'^admin/', admin.site.urls),url(r'', include(router.urls)), ]MySer序列化類文件
from rest_framework import serializers from app01 import models class PublishSer(serializers.ModelSerializer):class Meta:model = models.Publishfields = "__all__"models.py文件
from django.db import models# Create your models here. class Publish(models.Model):name = models.CharField(max_length=32)addr = models.CharField(max_length=64)測試,輸入一個錯誤的路由,查看自動生成2條路由:
#DefaultRouter 自動生成四條路由
二、解析器
回到頂部
前端不同的數據格式請求,后端解析得到的結果:
json格式:
前端:(使用postman發送請求,json格式)
后端:(打印request.data數據)
form-data格式:
urlencoded格式:
小結:可以看出
json格式數據發送,后端解析出來的數據為:<class ‘dict’>
form-data和urlencoded格式數據發送,后端解析出來的數據為:QueryDict對象,<class ‘django.http.request.QueryDict’>
總結
以上是生活随笔為你收集整理的Django框架深入了解_04(DRF之url控制、解析器、响应器、版本控制、分页)(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Django框架之DRF 基于mixin
- 下一篇: Django框架深入了解_04(DRF之