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