vue項目和django項目交互補充,drf介紹,restful規範

1、vue項目與django項目的交互

  • vue中的發送ajax請求,其中的參數有:
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 錯誤信息
            })
        }
  • django後端的request的方法
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",
]

2、drf(Django-restframework)

1. drf主要知識點

"""
一、接口:接口的概念、數據接口文檔、接口規範(restful)、Postman接口測試工具

二、drf請求生命週期 - CBV

三、drf的基礎組件:請求、響應、渲染、解析、異常

四、drf的序列化(核心):序列化、模型序列化、羣操做序列化

五、drf的視圖家族:視圖類(經常使用)、視圖工具類、工具視圖類(經常使用)、視圖集

六、drf的三大認證(核心):認證、權限、頻率

七、drf的過濾:篩選、搜索、排序、分頁、區間、自定義
"""

2. drf框架安裝

"""
drf框架安裝:
	1)drf是Django的插件,因此要提早按照Django
	2)終端中使用命令:python pip install djangorestframework
	3)使用drf時,要在settings中註冊
"""

3. web接口(WEB API)

"""
什麼是web接口:就是 採用某種請求方式提交請求參數,得到響應數據的 url連接
	四部分:url連接 + 請求方式 + 請求參數 + 響應數據
	web接口文檔的書寫:包含一個接口的訪問的url連接的格式和須要的請求參數,以及訪問後其響應數據。
	詳情見:https://www.cnblogs.com/xiaoyuanqujing/articles/11869745.html
"""

4. restful接口規範

"""
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"
    		}]
		}
"""

3、django的CBV模型生命週期

  • django後端啓動,執行urls文件中的各as_view()方法——》
  • 前端發送請求到後端對應的url——》
  • 後端根據請求方式調用類中對應的方法,再返回處理結果給前端
相關文章
相關標籤/搜索