Django 之设置session

配置

一: 首先设置一个数据库用来储存Session, 但是Django并不知道, 所以我们下面要配置: 这里设置为redis的1号库  名叫session

CACHES = {
   
    "session": { # session
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },

}

二: 在settings中配置

1、SESSION_ENGIN = "django.contrib.sessions.backends.cache"  Session引擎 前面django.contrib.sessions.backends固定  .后面的根据自己的配置来  看上面储存为之刻意看到  这里是cache

2、告诉django  Session的储存位置: 就是数据库名   这里是session

SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "session"

使用:

一:正常使用:

      1、设置Session:

            法一:request[session名] = 值  

            法二:request.session[Session名]     request.session[Session名] = 值

            法三:request.session.setdefault('k1',123) # 若是名为‘’k1“的Session存在则不设置

      2、获取Session:

            法一:request.session['k1']   直接根据key值获取

            法二:request.session.get('k1',None)  根据key值获取, 若是不存在就设置一个默认值, 货渠道自己设置的默认值

           推荐法二

             以下为了解

             # 获取所有Session的key值

             request.session.keys()

            #获取所有Session的值

             request.session.values()

            # 获取所有Session的键和值(键值对)

             request.session.items()

             request.session.iterkeys()

             request.session.itervalues()

             request.session.iteritems()

     3、给Session设置有效时间

            request.session.set_expiry(value) 

            你可以传递四种不同的值给它:

            * 如果value是个整数,session会在些秒数后失效(适用于整个Django框架,即这个数值时效时整个页面都会session失效)。 

           * 如果value是个datatime或timedelta,session就会在这个时间后失效。 

           * 如果value是0,用户关闭浏览器session就会失效。

           * 如果value是None,session会依赖全局session失效策略。

    4、清空Session

            request.session.clear()

 

 

二:Django自带认证系统 login(),login()

django实现登录一个用户需要俩个函数:authenticate(username,password)和login(request,user),这2个函数里面的参数都是固定的,必须要传入。authenticate(username,password)如果校验通过则返回user对象,如果校验不通过则返回None。

login()接受2个参数,接受request对象和authenticate返回的user对象.

from django.contrib.auth import authenticate, login, logout

user = authenticate(username=user_name, password=pass_word)

login(request,user)

 

logout(request)

logout中只有1个参数,没有返回值,即使用户没有登录也不会抛出异常,这个方法,会将存储在用户session的数据全部清空
 

       1、导包 : from django.contrib.auth import login, logout

       2、设置Session:

            login(request, Django认证系统authenticate()验证方法返回的数据)    一般都是login(request, user)

       3、清楚Session

           logout(request)

         

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值