rest_framework之權限源碼剖析

 

權限問題3d

1.models.pyblog

2.用戶類型:繼承

3.views.py:  get

假設訂單相關業務(只有SVIP用戶有權限)源碼

假設用戶信息相關業務(只有普通用戶、VIP有權限)io

 4.運行結果:配置

基本使用model

以上的權限代碼封裝到一個類中,之後各個視圖的get請求直接調用便可。不用每一個類都寫一遍權限。  權限

自定義權限類: 須要找到has_permission方法請求

0.看源碼:

1.

2.

3.複製源碼has_permission方法

 4.繼續定義權限類:has_permission方法返回True表示有權訪問。

5.定義好了權限類,局部使用。

局部權限

6.運行結果

7.再定義一個權限,除SVIP之外,其餘用戶都能訪問。

8.將全權都放到另外一個單獨的文件中。

而後視圖文件須要則引入。

views.py應用便可

 以上的單視圖應用。全局使用怎麼辦呢?  

全局權限

1.權限源碼流程:

仍是到複製源碼has_permission方法這一步驟

局部配置

permission.py

全局配置  settings.py

繼續看源碼:

每個權限都有該方法 has_permission

若是返回Fasle,則執行報錯,拋出異常。

拋出異常

默認英文報錯

運行結果

如何改爲中文報錯信息呢?

運行結果

內置權限

1.內置權限源碼流程

2.爲了讓咱們的權限更正規,必須繼承該內置權限。

相關文章
相關標籤/搜索