例如:一分鐘訪問三次
訪問記錄 =
try:
user = request._request.post.get(
'username'
) password = request._request.post.get(
'password'
) obj = models.userinfo.objects.
filter
(username=user, password=password)
.first()if
not obj:
ret[
'code']=
1001
ret[
'msg']=
'使用者名稱密碼錯誤'
# 為登入使用者建立token
token = md5(user)
# 存在就更新token,不存在就建立
models.usertoken.objects.update_or_create(user=obj, defaults=
) ret[
'token'
]= token
except exception as e:
ret[
'code']=
1002
ret[
'msg']=
'請求異常'
return jsonresponse(ret)dispatch() 方法——》initial()方法——》check_throttles()方法,節流限制——》allow_request()方法,如果返回flase,呼叫throttled()丟擲異常;如果返回true,說明未被限制。
basethrottle、******ratethrottle、anonratethrottle、userratethrottle、scopedratethrottle
from rest_framework.throttling import ******ratethrottle
# 繼承******ratethrottle的話,可直接實現上述功能
class
visitthrottles
(******ratethrottle)
: scope =
'luffy'
defget_cache_key
(self, request, view)
:return self.get_ident(request)
# 對普通使用者做限制,一分鐘可以最多訪問10次
# 以使用者id或者使用者名稱(要求使用者名稱唯一)作為key
# class
userthrottles
(******ratethrottle)
: scope =
'luffyuser'
defget_cache_key
(self, request, view)
:return request.user.username
settings.py配置
rest_framework =
}
區域性
# 將自定義的visitthrottles類引入throttle_classes列表中即可
用於使用者登入認證
對匿名使用者做限制,讓其一分鐘只能訪問3次,實現方式以ip作為key
'''authentication_classes =
permission_classes =
# 匿名使用者登入時,一分鐘只能訪問3次
throttle_classes =
[visitthrottles,
]def
post
(self, request,
*args,
**kwargs)
:# self.dispatch()
# 1、去request中獲取ip
# 2、訪問記錄
ret =
try:
user = request._request.post.get(
'username'
) password = request._request.post.get(
'password'
) obj = models.userinfo.objects.
filter
(username=user, password=password)
.first()if
not obj:
ret[
'code']=
1001
ret[
'msg']=
'使用者名稱密碼錯誤'
# 為登入使用者建立token
token = md5(user)
# 存在就更新token,不存在就建立
models.usertoken.objects.update_or_create(user=obj, defaults=
) ret[
'token'
]= token
except exception as e:
ret[
'code']=
1002
ret[
'msg']=
'請求異常'
return jsonresponse(ret)
全域性
rest_framework =
}# 對普通使用者做限制,一分鐘可以最多訪問10次
# 以使用者id或者使用者名稱(要求使用者名稱唯一)作為key
# class
userthrottles
(******ratethrottle)
: scope =
'luffyuser'
defget_cache_key
(self, request, view)
:return request.user.username
ELF 四 節頭表
以32位為例,節頭表通過陣列實現,每個陣列項包含乙個節的資訊。各個節構成了程式頭表中定義的各段的內容。section header.typedef struct elf32 shdr elf標準定義了若干固定名稱的節。這些用於執行大多數目標檔案所需的標準任務。所有名稱都從點開始,以便與使用者或非標準...
機器學習基石第四節筆記
1.首先我們一直說,訓練集,通過訓練資料得出模型。測試集驗證模型的準確率。但是為什麼要這樣做呢?答 數學上有乙個不等式叫做霍夫丁不等式 hoeffding s inequality 這個不等式 當n足夠大的時候,v和u相等的概率很大,意思就是如果我從一大堆資料中,取一部分資料做訓練。如果這個訓練得到...
ObjC第四節 繼承
繼 承 1 繼承 1.1 nsobject,根類,oc建立的類都繼承自根類,位於類層次結構的頂層,沒有父類 1.2 父類的例項變數和方法都可以被隱式的繼承過來成為子類的一部分,子類就可以直接訪問這些例項變數和方法 1.3 alloc和init是繼承自nsobject的方法 1.4 繼承的概念呈單鏈繼...