日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2024/9/30 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django框架深入了解_04(DRF之url控制、解析器、响应器、版本控制、分页)(一) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

閱讀目錄

一、url控制

  • 基本路由寫法:最常用
  • 第二種寫法:繼承ModelViewSet
  • 第三種寫法:(自動(dòng)生成路由,必須繼承ModelViewSet)

二、解析器

  • 前端不同的數(shù)據(jù)格式請(qǐng)求,后端解析得到的結(jié)果:

  • 解析器介紹:

  • 解析器的作用:

  • 解析器的使用:

三、響應(yīng)器:

  • 響應(yīng)器的作用:

  • 響應(yīng)器的使用:

  • 響應(yīng)器的內(nèi)置渲染器:

四、版本控制

  • 全局使用:

  • 局部使用:

五、DRF分頁(yè)器

  • 常規(guī)分頁(yè)

  • 偏移分頁(yè)

  • 補(bǔ)充:get_paginated_response的使用

  • cursor游標(biāo)分頁(yè)

一、url控制

回到頂部
基本路由寫法:最常用

-------------------------------------------------------------------- 注:如果你對(duì)python感興趣,我這有個(gè)學(xué)習(xí)Python基地,里面有很多學(xué)習(xí)資料,感興趣的+Q群:895817687 --------------------------------------------------------------------from django.conf.urls import url from django.contrib import admin from app01 import viewsurlpatterns = [url(r'^admin/', admin.site.urls),url(r'^books/', views.Books.as_view()),url(r'^book/', views.Book.as_view()),url(r'^login/', views.Login.as_view()), ]

第二種寫法:繼承ModelViewSet

基于mixins來(lái)封裝的視圖就是使用了繼承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'})), ]

第三種寫法:(自動(dòng)生成路由,必須繼承ModelViewSet)

#SimpleRouter 自動(dòng)生成兩條路由
實(shí)現(xiàn)過(guò)程:

tips:使用python的manage.py的shell環(huán)境進(jìn)行快速添加數(shù)據(jù)用于測(cè)試:

pycharm>>Terminal:

python3 manage.py shell >>> from app01 import models >>> models.Publish.objects.create(name='北方出版社',addr='北京') <Publish: Publish object> >>> models.Publish.objects.create(name='長(zhǎng)江出版社',addr='湖北') <Publish: Publish object> >>> models.Publish.objects.create(name='東方出版社',addr='唐朝') <Publish: Publish object>

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 = PublishSer

urls.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)

測(cè)試,輸入一個(gè)錯(cuò)誤的路由,查看自動(dòng)生成2條路由:
#DefaultRouter 自動(dòng)生成四條路由

二、解析器

回到頂部
前端不同的數(shù)據(jù)格式請(qǐng)求,后端解析得到的結(jié)果:
json格式:
前端:(使用postman發(fā)送請(qǐng)求,json格式)

后端:(打印request.data數(shù)據(jù))

form-data格式:

urlencoded格式:


小結(jié):可以看出

json格式數(shù)據(jù)發(fā)送,后端解析出來(lái)的數(shù)據(jù)為:<class ‘dict’>

form-data和urlencoded格式數(shù)據(jù)發(fā)送,后端解析出來(lái)的數(shù)據(jù)為:QueryDict對(duì)象,<class ‘django.http.request.QueryDict’>

總結(jié)

以上是生活随笔為你收集整理的Django框架深入了解_04(DRF之url控制、解析器、响应器、版本控制、分页)(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。