drf(一)
阿新 • • 發佈:2022-04-03
Web應用模式
# 前後端混合開發 -bbs專案,頁面渲染是在後臺完成--->render(request,'index.html') -後端人員---》寫前端css,js,html # 前後端分離開發---》主流---》前端發展出一些框架(vue,react) -js的dom操作---》html頁面--》通過js在頁面中插入內容 -bom和dom -不用模板語法渲染頁面了----》在前端使用js渲染頁面 -頁面渲染在前端完成 -以後前端人員只負責寫前端 -後端人員只負責寫後端 -前端的展現形式---》不一定只是網頁,可能是app,小程式
API介面
# api介面:前後端互動的媒介
# 介面有的東西
-url地址
-請求方式:get ,post
-請求引數:name='西遊記'
get請求--->127.0.0.1/books?name='西遊記'
-響應結果
-http響應--》響應狀態碼--》響應頭---》響應體(json)
介面測試工具postman
# 對介面進行測試---》在瀏覽器中只能傳送get請求,發不了post,delete.. # 介面測試工具:mac,win,linux都可以 # 使用最多的軟體:postman ---》後來慢慢收費了---》Postwoman # 下載地址:https://www.getpostman.com/downloads/ # 雙擊就裝完了 # 前後端互動的編碼格式有哪幾種? -urlencoded:正常的post請求提交資料:name=lqz&age=19 -formdata:post請求上傳檔案:帶檔案二進位制形式 -json:body體中的資料格式為:{"name":"lqz","age":19}--》用的多
restful規範(重要)
# 前後端互動使用api介面---》符合某種規範---》restful規範---》寫前後端分離的標準 # REST全稱是Representational State Transfer,中文意思是表述(編者注:通常譯為表徵性狀態轉移)。 它首次出現在2000年Roy Fielding的博士論文中。 RESTful是一種定義Web API介面的設計風格,尤其適用於前後端分離的應用模式中 # https://api.weibo.com/2/account/get_uid.json # 10條內容---》 -1 資料的安全保障--》通常使用https協議 -2 用api關鍵字標識介面---》在介面中帶api字眼--》讓別人一看就知道這是個api介面 -https://api.baidu.com/books -https://127.0.0.1:8080/api/books -3 多版本共存--->在介面地址中帶版本號---》 -都留---》儘快升級---》xx年我們就不支援xx以下版本了 -有的人用了老版本app--》老介面v1 -有的人用了新版本app--》新介面v2 -https://api.baidu.com/v1/login -https://api.baidu.com/v2/login -4 資料即是資源,均使用名詞(可複數)--》請求地址中儘量不出現動詞 -https://api.baidu.com/v1/users # 獲取使用者,刪除使用者,新增使用者 -5 資源操作由請求方式決定-->get,post,delete ,put,patch -get請求是獲取資料 -post請求是新增資料 -delete請求是刪除資料 -put請求是修改資料 -patch請求是區域性修改資料 -6 請求地址中帶過濾條件 -https://api.example.com/v1/zoos?limit=10 # 返回10條資料 -https://api.example.com/v1/books?name=西遊記 # 查詢名字是西遊記的這本書 -7 響應狀態碼(http的響應狀態碼,響應體的json資料中帶狀態碼) -http的響應狀態碼 -1xx:請求正在處理 -2xx:請求成功(200,201) 200和201有什麼區別? -3xx:重定向 (301和302有什麼區別) -4xx:客戶端錯誤(404:地址不存在,403:禁止了) -5xx:服務端錯誤 -響應體中返回json格式資料---》code,status--->也有狀態碼---》服務端自定義的 -1001 :使用者名稱錯誤 -1002 :沒有許可權。。 -8 錯誤處理,應返回錯誤資訊 -返回資料是json格式--》帶狀態碼---》錯誤資訊 { error: "無許可權操作" } -9 返回資料格式符合如下規範(大部分公司不按這個) -多條資料返回列表 GET /collection:返回資源物件的列表 [{name:lqz,age:19},{name:pyy,age:33}] -單條資料返回字典 GET /collection/resource:返回單個資源物件 {name:lqz,age:19} -新增,返回新增的物件---》{name:lqz,age:19} POST /collection:返回新生成的資源物件 -修改,返回修改後的物件--》{name:lqz,age:19} PUT /collection/resource:返回完整的資源物件 -修改,返回修改後的物件--》{name:lqz,age:19} PATCH /collection/resource:返回完整的資源物件 -刪除,返回空文件 DELETE /collection/resource:返回一個空文件 -->{code:100,msg:刪除成功} -10 返回資源中連結地址 { "id": 1404376560, "description": "人生五十年,乃如夢如幻;有生斯有死,壯士復何憾。", "url": "http://blog.sina.com.cn/zaku", "profile_image_url": "http://tp1.sinaimg.cn/1404376560/50/0/1", "domain": "zaku", }