码迷,mamicode.com
首页 > 其他好文 > 详细

session验证_django

时间:2020-07-12 01:12:52      阅读:73      评论:0      收藏:0      [点我收藏+]

标签: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

session验证_django

标签:username   使用   http   user   use   none   col   val   red   

原文地址:https://www.cnblogs.com/chenxiaozan/p/13286201.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!