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