django Cookie,Session和自定义分页
因為HTTP協議是無狀態的,每發送完請求后都會斷開鏈接,所以有時為了保存
狀態用到cookie和session
cookie 是保存在瀏覽器上的,session是保存在后臺的
cookie相當于一個口令,從服務端發給客戶端的一系列字符串,每次發送請求都帶著這個口令
session就是一個大字典,用戶發送過來cookie,要和session進行比對,成功則保持狀態,cookie存儲有限,session還存一些其他私密信息
獲取session:
request.session['k1']
request.session.get('k1',None)
設置session
request.session['k1']=123
request.session.setdefault['k1',123] ?#存在就不設置
查詢session:
request.session.keys()
request.session.values()
request.session.items()
request.sessioon.iterkeys()
request.session.itervalues()
request.session.iteritems()
?
會將所有Session失效日期小于當前日期的數據刪除
request.session.clear_expired()
?
檢查是否存在session的key
request.session.exists('k1')
?
刪除當前會話的所有session數據,客戶端的cookie不會刪
request.session.delete()
?
刪除當前會話的所有session數據和客戶端的cookie
request.session.flush()
?
設置會話session和cookie的超時時間
request.session.set_expiry(value)
如果value是整數,則在多少秒之后消失
如果value是datatime或者timedelta,session就會在這個時間消失
如果是0,用戶關閉瀏覽器就失效,
如果不設置,或者None,session默認是2周失效
?
在類中給類方法加函數裝飾器,不能直接加,Django內置了一個方法
from django.utils.decorators import method_decorator
然后method_decorator(check_login)
這是直接加在類里get 和post方法之上的
當直接加在類的上面時必須要加上name關鍵字,method_decorator(check_login,name='get')
?
補充:CSRF Token相關裝飾器在CBV只能加在dispatch方法上
csrf_protect,為當前函數強制設置防跨站請求偽造功能,即便settings中沒有設置全局中間件。
csrf_exempt,取消當前函數防跨站請求偽造功能,即便settings中設置了全局中間件
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
轉載于:https://www.cnblogs.com/zhaoweihang/p/9229596.html
總結
以上是生活随笔為你收集整理的django Cookie,Session和自定义分页的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ACM_黯然销魂?
- 下一篇: react学习(四)之设置 css样式