created() { this.$axios({ url: 'http://127.0.0.1:8000/test/', // 請求地址 method: 'post', // 請求方式 params: { // 拼接參數 a: 1 }, data: { // data數據包 x: 10 }, headers: { // 請求頭 authorization: 'abc.def.xyz', // 請求頭內容 token: 1, owen: 2, // 後臺:request.META.get('HTTP_參數名全大寫') } }).then(response => { // then至關於success , 進行回調函數 console.log('成功:', response.data) }).catch(error => { // 錯誤捕捉 console.log('失敗:', error.response.data) // error.response.data 錯誤信息 }) }
request.META # 獲取請求頭 CORS_ORIGIN_ALLOW_ALL = True # 容許跨域 CORS_ALLOW_HEADERS = [ # 重寫CORS_ALLOW_HEADERS,定義容許訪問的請求頭,前面的都是系統默認的要再加上 "accept", "accept-encoding", "authorization", "content-type", "dnt", "origin", "user-agent", "x-csrftoken", "x-requested-with", "token", "owen", ]
一、接口:接口的概念、數據接口文檔、接口規範(restful)、Postman接口測試工具 二、drf請求生命週期 - CBV 三、drf的基礎組件:請求、響應、渲染、解析、異常 四、drf的序列化(核心):序列化、模型序列化、羣操做序列化 五、drf的視圖家族:視圖類(經常使用)、視圖工具類、工具視圖類(經常使用)、視圖集 六、drf的三大認證(核心):認證、權限、頻率 七、drf的過濾:篩選、搜索、排序、分頁、區間、自定義
drf框架安裝: 1)drf是Django的插件,因此要提早按照Django 2)終端中使用命令:python pip install djangorestframework 3)使用drf時,要在settings中註冊
什麼是web接口:就是 採用某種請求方式提交請求參數,得到響應數據的 url連接 四部分:url連接 + 請求方式 + 請求參數 + 響應數據 web接口文檔的書寫:包含一個接口的訪問的url連接的格式和須要的請求參數,以及訪問後其響應數據。 詳情見:https://www.cnblogs.com/xiaoyuanqujing/articles/11869745.html
url連接: 1)接口都是操做先後臺數據的,因此須要保證數據的安全性 採用https協議 2)接口用來操做數據,與網址(操做頁面)有區別,因此用特定的關鍵字表示接口 api關鍵字 - https://api.baidu.com - https://www.baidu.com/api 3)接口操做的數據稱之爲 資源,在url中只體現 資源 名稱(名詞),不體現操做資源的方式動詞 常規資源接口 - https://api.baidu.com/books/ - https://api.baidu.com/books/(pk)/ 很是規接口 - 和某資源不是特別密切或是不止一種資源 - https://api.baidu.com/login/ - https://api.baidu.com/place/search/ 4)若是一個資源存在多版本結果,在url連接中要用特定符號來兼容多版本共存 v1|v2 - https://api.baidu.com/v1/books/ - https://api.baidu.com/v2/books/ 5)羣資源操做,通常還有額外的限制條件,如排序、限制調試、分頁等等 ?限制條件 - https://api.baidu.com/v1/books/?ordering=-price&limit=3 請求方式 6)五大請求方式 get:獲取單個或多個資源 - https://api.baidu.com/books/ 羣查,返回多個結果對象 - https://api.baidu.com/books/(pk)/ 單查,返回單個結果對象 post:新增單個或多個資源(都是一個url) - https://api.baidu.com/books/ 單增,提交單個數據字典,完成單增,返回單個結果對象 羣增,提供多個數據字典的數組,完成羣增,返回多個結果對象 put:總體修改單個或多個資源 - https://api.baidu.com/books/ 總體修改多個,提供多個數據字典的數組(數據字典中要包含主鍵),完成羣改,返回多個結果對象 - https://api.baidu.com/books/(pk)/ 總體修改單個,提供單個數據字典(主鍵在url中體現),完成單改,返回單個結果對象 patch:局部修改單個或多個資源 方式與put徹底相同,不一樣的是:操做的資源若是有5個key-value鍵值對,put請求提供的字典必須全包含,可是patch提供的字典包含的鍵值對0~5個均可以 delete:刪除單個或多個資源 - https://api.baidu.com/books/ 多刪,提供多個資源主鍵數據,完成羣刪,不作任何資源返回(通常咱們會返回結果信息:成功|失敗) - https://api.baidu.com/books/(pk)/ 單刪,不須要提供額外數據,完成單刪,不作任何資源返回(通常咱們會返回結果信息:成功|失敗) 響應結果: 7)響應對象中要包含網絡狀態碼(網絡狀態信息和網絡狀態碼捆綁出現,不要額外設置): 1xx:基本信息 2xx:成功 - 200基本 201新增成功 3xx:重定向 4xx:客戶端錯誤 - 400錯誤請求;403請求無權限;404請求資源不存在 5xx:服務端錯誤 - 500服務器錯誤 8)數據狀態碼(通常都是先後臺約定規則): 0:成功 1:失敗 - 1xx:具體失敗信息(要在接口文檔中明確寫出) 2:無數據 - 2xx:具體無數據信息(要在接口文檔中明確寫出) 9)數據狀態信息(通常不單單是對數據狀態碼的解釋,更可能是對結果的描述,給前臺開發者閱讀的) 10)數據結果(常量、數組、字典),若是有子資源(圖片、音頻、視頻),返回資源的url連接:
{ "status": 0, "msg": 'ok', "results": [{ "name": "西遊記", "img": "https://api.baidu.com/media/book/xyj.png" }] }
as_view()
方法——》