python - django-rest-framework如何實現(xiàn)對view參數(shù)進行認證的
問題描述
比如有下面一個View,比較簡單:
class UsersView(View): def get(self,request): ......
這個GET方法會接受一個參數(shù)id,也就是用戶的ID,理想的狀態(tài)是只要進入get方法內(nèi),那么這個用戶就是存在的,否則就直接拋404或者其他。
但現(xiàn)在的做法是在view里面做判斷用戶是否存在,然后再做不同的操作。
Qclass UsersView(View): authentication_classes = .... permission_classes = .... serializer_class = ....
不知道rest里面有沒有這種方法,可以在進入View里面之前就可以做參數(shù)的驗證,而不用在View里面。
問題解答
回答1:請求不到的資源會自動拋出404錯誤
回答2:rest的view中設(shè)置了authentication_classes,可以在進入view函數(shù)之前進行相應(yīng)的鑒權(quán),可以編寫定制的鑒權(quán)類,繼承authentication.BaseAuthentication類并實現(xiàn)authentication(self, request)方法,在該方法進行你需要的邏輯判斷,返回相應(yīng)的錯誤信息等。
不過主要用作當(dāng)前請求用戶的鑒權(quán),像判斷ID是否存在在view里面寫很正常的,如果多個view都需要可以寫一個裝飾器即可。
相關(guān)文章:
1. javascript - 百度echarts series數(shù)據(jù)更新問題2. MySQL客戶端吃掉了SQL注解?3. java - 我設(shè)置了cookie的max age,但是cookie依然在關(guān)閉游覽器后消失了4. css3 - [CSS] 動畫效果 3D翻轉(zhuǎn)bug5. javascript - JS設(shè)置Video視頻對象的currentTime時出現(xiàn)了問題,IE,Edge,火狐,都可以設(shè)置,反而chrom卻...6. python小白的基礎(chǔ)問題 關(guān)于while循環(huán)的嵌套7. java固定鍵值轉(zhuǎn)換,使用枚舉實現(xiàn)字典?8. php自學(xué)從哪里開始?9. phpstady在win10上運行10. 求大神幫我看看是哪里寫錯了 感謝細心解答
