電流制限機能のために

電流制限機能のために

    実装フレームワーク制限機能は、配置が部分集合とグローバル設定に分け、およびクラスの設定を継承するカスタムクラスを設定して、カプセル化された制限のクラスに依存します。もしあなたがDEAFULRT_THROTTLE_CLASSESとDEAFULRT_THROTTLE_RATESを設定しなければならない機能を制限することを目標

(A)、グローバル設定の実現

。1 - settings.py 
 2 REST_FRAMEWORK = { 
 3。
 4 'DEFAULT_THROTTLE_CLASSES' :[ 
 5 'rest_framework.throttling.AnonRateThrottle'  6#制限匿名ユーザー 7 'rest_framework.throttling.UserRateThrottle'  。8リストリクタは、登録済みのユーザ# 9  }  10  。11 'DEFAULT_THROTTLE_RATES' :{12である'アノン': '2 /分' 、13#匿名ユーザーが分訪問ごとに制限している5 14 'ユーザ':5 '/分' 、15#は、登録済みのユーザ分の訪問ごとに制限16から15 } 17 - 18は、全体クラスが実装が閉じ込められるviews.py#ストリーム機能19 Demo5APIView(APIView):#20は、DEF 21は、グローバル設定ビュークラスで動作することが要求されていない投票#22である:GET(セルフ、要求) 23ページの戻り応答(「これは、投票ページです」)24 -urls.py 25 urlpatterns = [26パス( 'DEMO7 /' 、views.Demo7APIView.as_view())、27]

(B)の部分集合を達成するために

。1. 1 - settings.py 
 2 REST_FRAMEWORK = { 
 3 'DEFAULT_THROTTLE_RATES' :{ 
 4 'アノン' '2 /分'  毎分5回へのアクセスを制限する5人の#匿名ユーザー 6 'ユーザ':5 '/分]  7位、毎分15回のアクセスを制限するユーザ登録 8 } 9 - } 10 機能12を限定実施views.py 11#ローカルクラス電流が= 13 throttle_classesある:Demo6APIView(APIView)[UserRateThrottle、AnonRateThrottle]#14部分集合必要性の観点からDEF 15のリストを設定する関数を書いてGET(セルフ、reqeust):16リターン応答(「ローカルテスト制限機能を」)17 - 。urls.py 18はurlpatterns =である[パス19(「demo6 /。 ' 、views.Demo6APIView.as_view())、20]であります

(C)、カスタム達成するための機能を制限します

。1 - settings.py 
 2 'DEFAULT_THROTTLE_CLASSES' 
 3 'rest_framework.throttling.ScopedRateThrottle' 
 クラスを使用するカスタム必要性を制限する4#
 5  ]、 6  。7 'DEFAULT_THROTTLE_RATES' :{  8 'コンタクト':5」/。時間' 定義されたレートから、9#リストリクタ10を設け} 11 } 12は- views.py流量制限器13はrest_framework.throttlingインポート機能からカスタム#14実装さScopedRateThrottle 15クラスDemo7APIView(APIView):16 throttle_scope ='コンタクト「タイトル18 DEF throttle_scopeによる流量制限を設定するには#17 。GET(自己、要求):レスポンスを返す19( 『テストカスタム制限機能』)20である- のURL。PY 21 urlpatterns = [22パス( 'DEMO7 /'、views.Demo7APIView.as_view())、23]

(D)、図の論理。

おすすめ

転載: www.cnblogs.com/ddzc/p/12111384.html