Day71 分页,cookie and Session
生活随笔
收集整理的這篇文章主要介紹了
Day71 分页,cookie and Session
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
-
cookie 是保存在客戶端的鍵值對.
-
cookie本身最大支持4096字節,保存在客戶端的
-
session是保存在服務器端的鍵值對.(依賴cookie)
?
?
?
cookie和session
cookie的由來?
因為http請求是沒有狀態的,每一次請求都是獨立的(對于服務端來說,一切都是只如初見!)?
cookie 是什么?
就是保存在瀏覽器上的鍵值對。
cookie的應用
1.登錄、七天免登錄?
2. 記錄用戶的瀏覽習慣.
3.簡單的投票限制。
?
?
?
?
?
?
?
?
?
?
?
?
?
?cookie 默認關閉瀏覽器 就消失了。。。?
?
?
?
?
?
?
?session
session是什么 ?
是保存在服務器端的鍵值對.
?
session 必須依賴于cookie
Django中session 做的事情:
1. 在服務器端生成隨機字符串
2.生成一個和上面隨機字符串對應的大字典,用來保留用戶數據的。
3. 隨機字符串當成Cookie返回給瀏覽器
取Session:
1. 從請求攜帶的COOKIE里面找到隨機字符串.
2. 拿到隨機字符串 去session 中對應的大字典.
3.從大字典中根據key 取值.
?
session 的優勢
1. 比cookie能存的數據多。
2. 安全性好 ,數據都保存在服務端。
session的缺點
1.session 數據量大,會占用一些內存.
?
?
?
?
?
?
?
?
?
?
獲取cookie
request.COOKIES['key'] request.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None)
參數:
- default: 默認值
- salt: 加密鹽
- max_age: 后臺控制過期時間
設置Cookie
rep = HttpResponse(...) rep = render(request, ...)rep.set_cookie(key,value,...) rep.set_signed_cookie(key,value,salt='加密鹽',...)
刪除cookie
def logout(request):rep = redirect("/login/")rep.delete_cookie("user") # 刪除用戶瀏覽器上之前設置的usercookie值return rep?
例子
def login(request):if request.method=='POST':user = request.POST.get('username')print(user)pwd =request.POST.get('pwd')if user =='alex' and pwd =='dsb':#登錄成功#告訴瀏覽器保存一個鍵值對rep =redirect('/home/')print(rep) # rep.set_cookie('is_login',1)rep.set_signed_cookie(' ','1',salt='s10nb') #加鹽的cookiereturn repreturn render(request,'login.html')def home(request):#從請求的cookie中找# ret =request.COOKIES.get('is_login',0) ret=request.get_signed_cookie('is_login',default='0',salt='s10nb')#取加過鹽的cookie if ret =='1' :#表示已經登錄過了。return render(request,'home.html')else:return redirect('/login/')
?
?Cookie默認關閉瀏覽器就失效
?
?
三、session
?
轉載于:https://www.cnblogs.com/mengbin0546/p/9048073.html
總結
以上是生活随笔為你收集整理的Day71 分页,cookie and Session的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SSM框架的简单搭建
- 下一篇: go语言练习:幂、函授接收和返回参数、转