session验证_django

Posted chenxiaozan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于session验证_django的主要内容,如果未能解决你的问题,请参考以下文章

Django之session验证的三种姿势

Django之session验证的三种姿势

php $_SESSION 问题

vue+django使用session的用户验证怎么做

Django基础之Session版登录验证

基于cookie和session的登录验证