文章詳情頁
python - django-rest-framework如何實現對view參數進行認證的
瀏覽:117日期:2022-08-11 10:12:24
問題描述
比如有下面一個View,比較簡單:
class UsersView(View): def get(self,request): ......
這個GET方法會接受一個參數id,也就是用戶的ID,理想的狀態是只要進入get方法內,那么這個用戶就是存在的,否則就直接拋404或者其他。
但現在的做法是在view里面做判斷用戶是否存在,然后再做不同的操作。
Qclass UsersView(View): authentication_classes = .... permission_classes = .... serializer_class = ....
不知道rest里面有沒有這種方法,可以在進入View里面之前就可以做參數的驗證,而不用在View里面。
問題解答
回答1:請求不到的資源會自動拋出404錯誤
回答2:rest的view中設置了authentication_classes,可以在進入view函數之前進行相應的鑒權,可以編寫定制的鑒權類,繼承authentication.BaseAuthentication類并實現authentication(self, request)方法,在該方法進行你需要的邏輯判斷,返回相應的錯誤信息等。
不過主要用作當前請求用戶的鑒權,像判斷ID是否存在在view里面寫很正常的,如果多個view都需要可以寫一個裝飾器即可。
相關文章:
1. java - web項目中,用戶登陸信息存儲在session中好 還是cookie中好,取決于什么?2. angular.js - webpack build后的angularjs路由跳轉問題3. java - Activity中的成員變量被賦值之后,Activity被回收的時候內存才會被釋放嗎4. 為什么bindClass訪問不了的?5. 老師,flex-shrink: 1; 按視頻操作,不會自動縮放6. 數組按鍵值封裝!7. php由5.3升級到5.6后,登錄網站,返回的是php代碼,不是登錄界面,各位大神有知道的嗎?8. 請求一個數據返回內容為空或者錯誤如何再次請求幾次9. 使用list和each配合,的作業,輸出一行后,如何換行10. Discuz! Q 有人用過嗎?
排行榜
