1 .先後端不分離:在先後端不分離的應用模式中,前端頁面看到的效果都是由後端控制,由後端渲染頁面或重定向,也就是後端須要控制前端的展現,前端與厚度那的耦合度很高.前端
這種應用模式比較合適純網頁應用,可是後端對接APP時,App可能並不須要後端返回一個HTML網頁,二僅僅是數據自己,因此後端本來返回網頁的接口不在適用前端APP應用,爲了對接APP後端嗨需再開發一套接口java
2 先後端分離:在先後端分離的應用模式中,後端僅返回前端所需的數據,不在渲染HTML頁面,不在控制前端的效果,只用前端用戶看到什麼效果,從後端請求的數據如何加載到前端中,都由前端本身決定,網頁有網頁的處理方式,APP有APP的處理方式,但不管哪一種前端,所須要的數據基本相同,後端僅需開發一套邏輯對外提供數據便可.
在先後端分離的應用模式中,前端與後端的耦合度相對較低python
在先後端分離的應用模式中,咱們一般將後端開發的每一視圖都成爲一個接口,或者API,前端經過訪問接口來對數據進行增刪改查web
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。
序列化:在數據存儲於傳送的部分是指將一個對象存儲至一個儲存媒介,能夠是字節或是XML等格式,這程序被應用在不一樣應用程序之間傳送對象,以及服務器將對象儲存到檔案或數據庫.相反的過程又稱爲反序列化
將程序中的一個數據結構類型轉換爲其餘格式(字典JSONXML等)
反之:講其餘格式(字典JSONXML等)轉換爲程序中的數據,這個過程咱們稱爲反序列化
總結,:視圖中須要作的最核心
1.將數據庫數據序列化爲前端鎖須要的格式,並返回.
2.將前端發送的數據反序列化爲模型類對象,並保存到數據庫中
序列化和反序列化能夠複用
增:效驗請求數據>執行反序列化過程>保存數據庫>將保存的對象序列化並返回
刪:判斷要刪除的數據是否存在.>執行數據庫刪除
改:判斷要修改的數據是否存在>效驗請求的參數>執行反序列化過程>保存數據庫>將保存的對象序列化並返回
查:查詢數據庫>將數據序列化並返回
特色:
1.提供了定義序列化器Serializer的方法,能夠快速根據Django ORM 或者其餘庫自動序列化/反序列化
2.提供了豐富的類視圖MIXIN擴展類,簡化視圖的編寫
3.豐富的定製層級:函數視圖類視圖試圖結合到自動生成API,知足各類須要
4.多種身份認證和權限認證方式的支持
5.內置了限流系統
6.直觀的API web界面
7.可擴展性 , 插件豐富
做者:SasukeN
來源:CSDN
原文:https://blog.csdn.net/SasukeN/article/details/80906008
識別圖中二維碼,領取python全套視頻資料