03 DRF框架安裝和實現單查群查介面

2022-03-18 19:43:47 字數 2720 閱讀 7440

1)安裝

>: pip install djangorestframework

2)在settings中註冊(為什麼要註冊,後面再說)

# ...

'rest_framework',]

3)在settings中自定義drf配置

注:drf配置查詢順序,自定義settings的rest_framework配置字典 => drf預設settings的defaults

rest_framework = {}

4)drf的封裝特點:特定功能在特定模組下,比原生django封裝更規範

from rest_framework.views import apiview

from rest_framework.response import response

from rest_framework.request import request

1)在models.py建立model類

from django.db import models

class book(models.model):

name = models.charfield(max_length=64, verbose_name='書名') # verbose_name設定後在後台管理中欄位名字會顯示「書名」

price = models.decimalfield(max_digits=5, decimal_places=2, verbose_name='**')

# 配置類

class meta:

verbose_name_plural = '圖書' # verbose_name設定後表名為「圖書s」, verbose_name_plural設定後表名在後台管理中顯示「圖書」

def __str__(self): # 設定後在後台管理中,會列印表中記錄的資料,例如name='bob',就會將bob顯示出來

return self.name

2)在admin.py中註冊model類,方便在後台(admin)視覺化管理資料

from django.contrib import admin

from . import models

admin.site.register(models.book) # admin要控制的model都需要註冊一下

3)資料庫遷移操作

>: python manage.py makemigrations

>: python manage.py migrate

>: python manage.py createsuperuser

admin | admin123

4)瀏覽器登入admin錄入資料:http://localhost:8000/admin

標準的寫法,可以滿足十大介面設計

urlpatterns = [

# 資源books介面的設計

url(r'^books/$', views.bookapiview.as_view()), # 群查、單增

url(r'^books/(?p\d+)/$', views.bookapiview.as_view()), # 單查、單刪、單(整體|區域性)改

]

from rest_framework.views import apiview

from rest_framework.response import response

from . import models

class bookapiview(apiview):

def _multiple_get(self):

# 不能返回,資料是queryset[obj, obj],也不能強制轉換list

# return list(models.book.objects.all())

# queryset[dict, dict]

# print(models.book.objects.values('name', 'price'))

# queryset[tuple, tuple]

# print(models.book.objects.values_list('name', 'price'))

return response(list(models.book.objects.values('name', 'price')))

def _single_get(self, pk):

# return response(models.book.objects.filter(pk=pk).values('name', 'price').first())

# 開發階段建議能用try的地方,不要使用if判斷

try:

return response(models.book.objects.values('name', 'price').get(pk=pk))

except:

return response('資源不存在')

# 單查、群查

def get(self, request, *args, **kwargs):

pk = kwargs.get('pk')

if pk:

# 單查邏輯

return self._single_get(pk)

else:

# 群查邏輯

return self._multiple_get()

drf框架和axios封裝

djangorestframework框架,簡稱drf 方便快捷的 進行 web api 的開發 也就是說 方便 我們進行 restful 風格介面開發 乙個介面對應著 get post put delete pip install djangorestframeworkfrom rest fram...

DRF框架和Vue框架閱讀目錄

vue框架目錄 二 vue框架 二 vue指令 v once指令 v cloak指令 條件指令 v pre指令 迴圈指令 todolist案例 vue例項 計算 監聽 元件 元件資料互動 三 vue框架 三 vue專案搭建和專案目錄介紹 元件 路由 四 vue框架 四 路由跳轉 路由傳參 cooki...

python 21 DRF框架和Vue框架閱讀目錄

vue框架目錄 二 vue框架 二 vue指令 v once指令 v cloak指令 條件指令 v pre指令 迴圈指令 todolist案例 vue例項 計算 監聽 元件 元件資料互動 三 vue框架 三 vue專案搭建和專案目錄介紹 元件 路由 四 vue框架 四 路由跳轉 路由傳參 cooki...