session验证_django

一、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

posted on 2020-07-11 23:54  陈小赞  阅读(450)  评论(0编辑  收藏  举报

导航