标签:username 使用 http user use none col val red
一、session的原理
cookie是保存在客户端浏览器的键值对;
而session是保存在服务器端的键值对,相当于一个大的字典,每个用户来验证成功之后都会随机生成一个字符串,然后把这个字符串给用户的浏览器cookie,客户端的浏览器上就这有一个随机字符串(key),数据都存放在服务器端。基于session做验证,必须和cookie结合。
session必须四线生成数据库,因为默认随机字符串和信息是存放在数据库的表中的。
二、实现的小例子
1 def login(request): 2 if request.method=="GET": 3 return render(request,"login.html") 4 elif request.method=="POST": 5 username=request.POST.get(‘user‘) 6 password=request.POST.get(‘pwd‘) 7 if username=="root" and password=="123": 8 #验证成功之后给session里面设置数据 9 request.session[‘username‘]=username 10 request.session[‘is_login‘]=True 11 return redirect("/index/") 12 else: 13 return render(request,"login.html") 14 15 16 def index(request): 17 #验证登录的数据 18 if request.session.get("is_login",None): 19 return HttpResponse(request.session["username"]) 20 else: 21 return HttpResponse("gun")
三、session里面其他操作
获取信息:
request.session[‘k1‘] #不存在时会报错
request.session.gt(‘k1‘,None) #推荐使用,不存在时不会报错,会等于None
设置信息:
request.session[‘k1‘]=123
request.session.setdefaule(‘k1‘,123) #如果里面存在k1,则不设置,不存咋则设置
删除信息:
del request.session[‘k1‘]
对大字典里面的键值操作:
request.session.keys()
request.session.values()
request.session.items()
request.session.iterkeys()
request.session.itervalues()
request.session.iteritems()
设置超时时间:
request.session.set_expiry(value)
django里面的默认超时时间是两周
修改session默认:(直接写在settings里面)
Django中默认支持Session,其内部提供了5种类型的Session供开发者使用:
数据库(默认)
缓存
文件
缓存+数据库
加密cookie
标签:username 使用 http user use none col val red
原文地址:https://www.cnblogs.com/chenxiaozan/p/13286201.html