django中itsdangerous的用法

2022-07-30 06:54:15 字數 1049 閱讀 1341

itsdangerous用來解決什麼問題,為什麼需要用到itsdangerous?

安裝命令:pip install itsdangerous

有時候你想向不可信的環境傳送一些資料,但如何安全完成這個任務呢?解決的方法就是簽名。使用只有你自己知道的金鑰,來加密簽名你的資料,並把加密後的資料發給別人。當你取回資料時,你就可以確保沒人篡改過這份資料。

誠然,接收者可以破譯內容,來看看你的包裹裡有什麼,但他們沒辦法修改你的內容,除非他們也有你的金鑰。所以只要你保管好你的金鑰,並且金鑰足夠複雜,一切就ok了。

itsdangerous內部預設使用了hmac和sha1來簽名,基於 django 簽名模組。它也支援json web 簽名 (jws)。這個庫採用bsd協議,由armin ronacher編寫,而大部分設計與實現的版權歸simon willison和其他的把這個庫變為現實的django愛好者們

from itsdangerous import

timedjsonwebsignatureserializer as serializer

from django.conf import

settings

#serializer = serializer(秘鑰, 有效期秒)

serializer = serializer(settings.secret_key, 300)

#serializer.dumps(資料), 返回bytes型別

token = serializer.dumps()

token =token.decode() #解碼

#檢驗token

#驗證失敗,會丟擲itsdangerous.baddata異常

serializer = serializer(settings.secret_key, 300)

try:

data =serializer.loads(token)

except

baddata:

return none

else:

data.get('mobile')

django中restframework巢狀序列化

問題 定義好了序列化器後有沒有遇到過想要序列化的資料表中有外來鍵的情況,我們需要的這個和外來鍵關聯的資料 model.py 報警表 class police models.model 報警型別 police models.charfield max length 50 開始範圍 begin mode...

django基礎 django中的app應用

urlpatterns path lw2 views.lw2 先設定子路由和乙個實現登入功能頁面 login.html 使用者名稱 密碼 通過request.post.get 方法可以返回使用者登入時的資訊,根據資訊來判斷和進行下一事件。如果登入資訊與資料庫中資訊不相匹配,則重新返回新的登入頁面。此...

django 重新整理快取 Django 中的快取問題

django 中的快取問題 簡單介紹 在動態 中,使用者所有的請求,伺服器都會去資料庫中進行相應的增,刪,查,改,渲染模板,執行業務邏輯,最後生成使用者看到的頁面.當乙個 的使用者訪問量很大的時候,每一次的的後台操作,都會消耗很多的服務端資源,所以必須使用快取來減輕後端伺服器的壓力.快取是將一些常用...