2、Django Rest Framework簡介及初步使用
使用Django Rest Framework之前我們要先知道,它是什麽,能幹什麽用?
Django Rest Framework 是一個強大且靈活的工具包,用以構建Web API
為什麽要使用Rest Framework
Django REST Framework可以在Django的基礎上迅速實現API,並且自身還帶有WEB的測試頁面,可以方便的測試自己的API
web應用模式分兩種:
1. 前後端不分離
在前後端不分離的引用模式中,前端頁面看到的效果都是由後端控制的,由後端頁面渲染或者重定向,也就是後端需要控制前端的展示,前端與後端的耦合度很高,這種模式比較適合純網頁應用,但是後端對接APP時,App可能並不需要後端返回一個HTML網頁,二僅僅是數據本身,所以後端原本返回網頁的接口不在適用前端APP應用,為了對接APP後端嗨需再開發一套接口。
這個可以看我之前寫的DJango博客就可以知道,每次返回時都是使用render 或者redirect來返回的,需要帶上HTML頁面和參數
2. 前後端分離
在前後端分離的應用模式中,後端僅返回前端所需要的數據,不再渲染HTML頁面,不再控制前端的效果,只要前端用戶看到什麽效果,從後端請求的數據如何加載到前端中,都由前端自己決定,網頁有網頁自己的處理方式,APP有APP的處理方式,但無論哪種前端所需要的數據基本相同,後端僅需開發一套邏輯對外提供數據即可,在前後端分離的應用模式中,前端與後端的耦合度相對較低
在前後端分離的應用模式中,我們通常將後端開發的每一視圖都成為一個接口,或者API,前端通過訪問接口來對數據進行增刪改查
如果項目的需求是後一種情況的話,那麽就可以用到Django Rest Framework了
Django REST framework 簡介
序列化和反序列化可以復用
增: 效驗請求數據>執行反序列化過程>保存數據庫>將保存的對象序列化並返回
刪: 判斷要刪除的數據是否存在.>執行數據庫刪除
改: 判斷要修改的數據是否存在>效驗請求的參數>執行反序列化過程>保存數據庫>將保存的對象序列化並返回
查: 查詢數據庫>將數據序列化並返回
特點:
1. 提供了定義序列化器Serializer的方法,可以快速根據Django ORM 或者其他庫自動序列化/反序列化
3. 豐富的定制層級:函數視圖\類視圖\試圖結合到自動生成API,滿足各種需要
4. 多種身份認證和權限認證方式的支持
5. 內置了限流系統
6. 直觀的API web界面
7. 可擴展性 , 插件豐富
Django REST framework 的核心任務
使用Django Rest framework的話,和之前使用Django時沒多大差別,當然,更復雜的差別我也不知道
1. 多了個serializers.py文件
這個文件的作用是Serializers把querysets和model instances這些復雜的數據結構轉化為native Python 以便於以json,xml或其它內容類型的形式render出去。
2. 視圖的核心功能變了
1. 將數據庫數據序列化為前端需要的格式,並返回
2. 將前端發送過來的數據反序列化為模型類對象,並保存到數據庫中
Django REST framework 的使用
1. 新建Django項目
新建 Rframork django項目 和 app01
pip install djangorestframework 安裝DRF
2. 配置 Rest framework
1. settings.py
在INSTALLED_APPS中加入我們的項目名和rest_framework,因為我是直接新建了一個文件夾,並不是在以有其它項目的情況下新建項目,所以我們的項目名他自己創建好了,只需要加41行就可以
添加數據庫配置,我使用的是MySQL
2. models.py
3. serializers.py
這個文件並沒有,需要我們自己新建,在app01 項目下要新建兩個文件,一個是urls.py, 另一個是serializers.py
4. 主容器urls.py
5. 項目的urls.py
6. views.py
7. mysql插曲人數據
8. 準備完畢,啟動項目
9. url拼接
2、Django Rest Framework簡介及初步使用