restful规范和APIView
生活随笔
收集整理的這篇文章主要介紹了
restful规范和APIView
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
django生命周期
1.先進入wsgi協議的web服務器2.進入django的中間件3.路由4.視圖5.取模板,取數據,用數據渲染模板6.返回模板的字符串7.在wsgi中封裝后發送給瀏覽器開發模式
1.前后端不分離項目可以使用django的模板語法進行渲染 2.前后端分離前端和后端通過json格式數據交互cbv源碼分析
路由如果這么配置:url(r'^test/',views.test.as_views())請求通過中間件后進入路由,根據路由匹配,一旦成功,會執行后面函數(request),本質就是執行了as_view內部的view函數,內部有調用了self.dispatch。根據請求方式,執行不同的方法(必然get請求,就會執行我們寫的視圖的get方法)嘗試自己封裝一個APIView,重寫dispatch方法,在執行父類的dispatch之前,寫一些邏輯,請求來了,就會執行這些邏輯APIView的dispath方法
1.對原生request對象做了一層包裝(面向對象的封裝),以后再用的request對象都是新的request對象2.在APIView中self.initial(request,*args,**kwargs),里面有頻率控制,權限控制和認證相關3.根據請求方法執行我們寫的視圖類中的相應方法視圖類中方法的request對象,已經變成了封裝后的requestRequest類
1.原生的request是self.request2.取以post形式提交的數據,從request.data中取(urlencoded,formdata,json格式)3.query_params就是原生request的GET的數據4.上傳的文件是從FILES中取5.(重點)其他的屬性,直接request.屬性名(因為重寫了__getattr__方法)restful規范
面向資源架構1.API與用戶通信協議,總是使用Https協議(相比http有加密的功能)2.域名有區分-https://api.example.com-https://example.org/api/3.版本-可以放在路徑中-可以放在請求頭中4.路徑視網絡上任何東西都是資源,均使用名詞表示(重點)-https://api.example.com/v1/zoos5.通過method區分是什么操作-get表示獲取-post表示新增-delete表示刪除-patch/put表示修改6.過濾通過url上傳參的形式傳遞搜索條件7.狀態碼{'status_code':100}8.錯誤處理,應返回錯誤信息{'status_code':100,'msg':'登錄成功'}{'status_code':101,'msg':'用戶錯誤'}9.返回結果,針對不同操作,服務器向用戶返回的結果-get獲取所有資源/get獲取一個資源-127.0.0.1/api/vi/books 獲取所有圖書{'status_code':100,'msg':'獲取成功',data:'[{},{}]'}-127.0.0.1/api/vi/books/3 獲取id為3的圖書{'status_code':100,'msg':'獲取成功',data:{name:xx...}}-新增數據,把新增的數據再返回-修改了數據,返回完整的資源對象-刪除數據,返回一個空文檔10.返回結果中提供鏈接轉載于:https://www.cnblogs.com/Mr-bear/articles/11116704.html
總結
以上是生活随笔為你收集整理的restful规范和APIView的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NSIS打包软件使用
- 下一篇: step1 . day5 C语言基础练习