Django REST framework 理解

Django REST framework 理解

Web應用模式

1 .先後端不分離:在先後端不分離的應用模式中,前端頁面看到的效果都是由後端控制,由後端渲染頁面或重定向,也就是後端須要控制前端的展現,前端與厚度那的耦合度很高.前端

這種應用模式比較合適純網頁應用,可是後端對接APP時,App可能並不須要後端返回一個HTML網頁,二僅僅是數據自己,因此後端本來返回網頁的接口不在適用前端APP應用,爲了對接APP後端嗨需再開發一套接口java

2 先後端分離:在先後端分離的應用模式中,後端僅返回前端所需的數據,不在渲染HTML頁面,不在控制前端的效果,只用前端用戶看到什麼效果,從後端請求的數據如何加載到前端中,都由前端本身決定,網頁有網頁的處理方式,APP有APP的處理方式,但不管哪一種前端,所須要的數據基本相同,後端僅需開發一套邏輯對外提供數據便可.
在先後端分離的應用模式中,前端與後端的耦合度相對較低python

在先後端分離的應用模式中,咱們一般將後端開發的每一視圖都成爲一個接口,或者API,前端經過訪問接口來對數據進行增刪改查web

認識RESTful

1.在先後端分離的應用模式裏.後端API接口如何定義?數據庫

1.POST/add-goods增長商品
2.POST/delete-goods刪除商品
3.POST/update-goods修改商品
4.GET/get-goods查詢商品信息後端

2. 名稱服務器

具象狀態傳輸」 或者表現層轉換化.數據結構

RESTful是一種開發理念  . REST是設計風格而不是標準
REST特色:url簡潔,將參數經過url傳到服務器.
稱之爲RESTful框架
1.具象的:資源
2.表現:格式
3.狀態轉換:數據變化
若是客服端想要操做服務器,必須經過某種手段,讓服務器端發生"狀態轉換"
總結:
1.每個URL表明一種資源
2.客服端和服務器端,傳遞這個資源的表現層
3.客服端經過四個GTTP動詞,對服務器端資源進行操做,實現"表現層狀態轉化"app

表現層狀態轉化

1.域名框架

應該儘可能將API部署在專用域名之下

若是肯定API很簡單,不會有進一步擴展,能夠考慮放在主域名下。

 

2.版本

應該講API的版本號放入URL

 

3,路徑

表示API的具體網址,每一個網站表明一種資源

1.資源做爲網站,不能有動詞,並且所用的名詞每每與數據庫的表名對應

2,API中的名詞應該使用複數,不管子資源或者全部資源

動詞:GET(SELECT):從服務器取出資源(一項或多項)。

POST(CREATE):在服務器新建一個資源。

PUT(UPDATE):在服務器更新資源(客戶端提供改變後的完整資源)。

DELETE(DELETE):從服務器刪除資源。

 

4.過濾信息

若是技能數量不少,服務器不可能都將它們返回給與用戶API應該提參數,過濾返回結果

 

5.狀態碼

服務器想用戶返回的狀態碼,和提示信息,

 

6.錯誤處理(Error handling)

若是狀態碼4xx,服務器就應該想用戶返回出錯信息,

 

7.返回結果

針對不一樣操做,服務器想用戶返回的結果應該符合如下規範

1.GET/collection:返回資源對象的列表

2.GET/coliection/resource:返回單個 資源對象

3.POST/collection:返回新生成的資源對象

4.PUT/collection/resource返回完整的資源對象

5.PATCH//collection/resource返回完整的資源對象

6.DELECT//collection/resource返回一個空文檔

 

8. 超媒體(Hypermedia API)

 

9.其餘

服務器返回的數據格式,應該儘可能使用JSON,避免使用XML。

明確REST接口開發的核心任務之序列化Serialization

序列化:在數據存儲於傳送的部分是指將一個對象存儲至一個儲存媒介,能夠是字節或是XML等格式,這程序被應用在不一樣應用程序之間傳送對象,以及服務器將對象儲存到檔案或數據庫.相反的過程又稱爲反序列化
將程序中的一個數據結構類型轉換爲其餘格式(字典JSONXML等)

反之:講其餘格式(字典JSONXML等)轉換爲程序中的數據,這個過程咱們稱爲反序列化

總結,:視圖中須要作的最核心
1.將數據庫數據序列化爲前端鎖須要的格式,並返回.
2.將前端發送的數據反序列化爲模型類對象,並保存到數據庫中

Django REST framework 簡介

序列化和反序列化能夠複用
增:效驗請求數據>執行反序列化過程>保存數據庫>將保存的對象序列化並返回
:判斷要刪除的數據是否存在.>執行數據庫刪除
:判斷要修改的數據是否存在>效驗請求的參數>執行反序列化過程>保存數據庫>將保存的對象序列化並返回
:查詢數據庫>將數據序列化並返回
特色:
1.提供了定義序列化器Serializer的方法,能夠快速根據Django ORM 或者其餘庫自動序列化/反序列化
2.提供了豐富的類視圖MIXIN擴展類,簡化視圖的編寫
3.豐富的定製層級:函數視圖類視圖試圖結合到自動生成API,知足各類須要
4.多種身份認證和權限認證方式的支持
5.內置了限流系統
6.直觀的API web界面
7.可擴展性 , 插件豐富

做者:SasukeN 

來源:CSDN 
原文:

https://blog.csdn.net/SasukeN/article/details/80906008 

 


 

Django REST framework 理解

識別圖中二維碼,領取python全套視頻資料

相關文章
相關標籤/搜索