1. 程式人生 > >2、Django Rest Framework簡介及初步使用

2、Django Rest Framework簡介及初步使用

com 身份認證 展示 bsp mod python 控制 idt led

使用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 或者其他庫自動序列化/反序列化

2. 提供了豐富的類視圖\MIXIN擴展類,簡化視圖的編寫
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簡介及初步使用