02 DRF框架搭建

2022-09-20 21:27:15 字數 2450 閱讀 9531

drf需要以下依賴:

drf是以django擴充套件應用的方式提供的,所以我們可以直接利用已有的django環境而無需從新建立。(若沒有django環境,需要先建立環境安裝django)

安裝drf

pip install djangorestframework
新增rest_framework應用...

'rest_framework', # 註冊應用

]接下來就可以使用drf進行開發了。

我們仍以在學習django框架時使用的圖書英雄為案例,使用django rest framework快速實現圖書的rest api。

1. 建立序列化器

在booktest應用中新建serializers.py用於儲存該應用的序列化器。

建立乙個bookinfoserializer用於序列化與反序列化。

class bookinfoserializer(serializers.modelserializer):

"""圖書資料序列化器"""

class meta:

model = bookinfo # 指明模型類

fields = '__all__' # 序列所有字段

編寫檢視

在booktest應用的views.py中建立檢視bookinfoviewset,這是乙個檢視集合。

from rest_framework.viewsets import modelviewset

from .serializers import bookinfoserializer

from .models import bookinfo

class bookinfoviewset(modelviewset):

queryset = bookinfo.objects.all()

serializer_class = bookinfoserializer

3. 定義路由

在booktest應用的urls.py中定義路由資訊。

from . import views

from rest_framework.routers import defaultrouter

urlpatterns = [

...]router = defaultrouter() # 可以處理檢視的路由器

router.register(r'books', views.bookinfoviewset) # 向路由器中註冊檢視集

urlpatterns += router.urls # 將路由器中的所以路由資訊追到到django的路由列表中

4. 執行測試

執行當前程式(與執行django一樣)

python manage.py runserver
在瀏覽器中輸入**127.0.0.1:8000,可以看到drf提供的api web瀏覽頁面:

1)點選鏈結127.0.0.1:8000/books/ 可以訪問獲取所有資料的介面,呈現如下頁面:

2)在頁面底下表單部分填寫圖書資訊,可以訪問新增新圖書的介面,儲存新書:

點選post後,返回如下頁面資訊:

3)在瀏覽器中輸入**127.0.0.1:8000/books/1/,可以訪問獲取單一圖書資訊的介面(id為1的圖書),呈現如下頁面:

4)在頁面底部表單中填寫圖書資訊,可以訪問修改圖書的介面

點選put,返回如下頁面資訊:

5)點選delete按鈕,可以訪問刪除圖書的介面

drf框架 基礎

目錄響應渲染模組 請求資料解析模組 響應模組 根據客戶端傳回的需求,進行路由匹配,呼叫相應的介面,然後介面執行完成的的資料,按照需要的格式進行返回。一般採用安全協議,因為介面都是對資料進行操作 在url中要體現介面的關鍵字api,如 或 介面操作的資料稱之為資源,前台請求資料的時候要採用資源的複數形...

DRF 框架其他功能

drf框架 其他功能 1 認證 許可權 2 限流 控制使用者訪問api介面的頻率。針對和認證使用者分別進行限流。限流 針對和認證使用者分別進行限流控制 default throttle classes rest framework.throttling.anonratethrottle 針對 res...

drf框架介面文件

rest framework可以自動幫助我們生成介面文件。介面文件以網頁的方式呈現。自動介面文件能生成的是繼承自apiview及其子類的檢視。pip install coreapi 在總路由中新增介面文件路徑。文件路由對應的檢視配置為rest framework.documentation.incl...