• 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

  • 相关阅读:
    Linux-文件编程
    Linux-编程基础
    Linux-系统管理
    Linux-命令
    图解HTTP-笔记
    微信小程序发送红包功能。填坑记录
    PHP中使用raw格式发送POST请求
    论一个PHP项目上线的注意点
    PHP CURL 模拟form表单上传遇到的小坑
    使用php的curl函数post返回值为301永久迁移的问题。(301 Moved Permanently)
  • 原文地址:https://www.cnblogs.com/chenxiaozan/p/13286201.html
Copyright © 2020-2023  润新知