美文网首页我爱编程
django---session/redis/隔行换色

django---session/redis/隔行换色

作者: 冬gua | 来源:发表于2018-03-21 22:02 被阅读0次

    (一)引入session

    SessionCookie是紧密相关的。 Session的使用要求用户浏览器必须支持Cookie,如果浏览器不支持使用Cookie,或者设置为禁用Cookie,那么将不能使用Session。

    Session信息对客户来说,不同的用户用不同的Session信息来记录。当用户启用Session时,ASP自动产生一个SessionID.在新会话开始时,服务器将SessionID当做cookie存储在用户的浏览器中。

    session相比较cookie来说比较安全

    我的理解:如果你是今天登陆这个网站(前提是你已经注册过这个网站),

    然后点击登陆,登陆成功的话  这行代码会自动生成一个cookie,并且为你设置一个对应得session.id。此时当你登陆成功的话就有两个cookie,一个是你自己设置的,一个是系统自动生成的。

    当你再次登陆这个网站打开任何一个界面的时候,系统会自动匹配你的sessionid,

    注意:自己设置的cookie 健名一定不要和sessionid重名,这样第二次进入系统的时候,内部会匹配不到

    (二)代码

    request.session['cueernt']=username            -----引入session[健]=需要记录的内容

    print('session:%s'%request.session.get('cueernt'))----在同一个app下的其他方法里打入这句话可以获取用户名

    (三)判断你的session id 是否建构成功(写一个判断)

    def test01(request):

        reet = request.session.get('cueernt')

        if not reet:

            return redirect('/user/login')

    return render(request, 'user/success.html')

    (四)引入redis

    1.与其他用户状态保存方案比较

    一般开发中用户状态使用session或者cookie,两种方式各种利弊。

    Session:在InProc模式下容易丢失,并且引起并发问题。如果使用SQLServer或者SQLServer模式又消耗了性能

    Cookie则容易将一些用户信息暴露,加解密同样也消耗了性能。

    Redis采用这样的方案解决了几个问题,

    1.Redis存取速度快。

    2.用户数据不容易丢失。

    3.用户多的情况下容易支持集群。

    4.能够查看在线用户。

    5.能够实现用户一处登录。(通过代码实现,后续介绍)

    6.支持持久化。(当然可能没什么用)

    7.相比直接在数据库里寻找session.id要快

    自己理解:因为如果这个网站在这一时刻有很大的浏览量,每个用户都有属于自己的session.id,如果服务器每次都在数据库里面寻找的话会特别慢,所以直接加载到redis里面

    (五)安装redis步骤

    设置redis

    第一步:安装pip install django-redis-sessions

    第二步:配置settings.py文件

    #redis缓存session

    SESSION_ENGINE = 'redis_sessions.session'

    SESSION_REDIS_HOST = '192.168.12.18'------IP地址

    SESSION_REDIS_PORT = 6379

    SESSION_REDIS_DB = 0

    SESSION_REDIS_PASSWORD = ''----设置密码

    SESSION_REDIS_PREFIX = 'session'

    第三步:redis-cli   ----进入环境

    如果不成功  输入sudo apt install redis-server

    此时sessionID将存储在redis里面

    (六)隔行换色

     {% if forloop.counter|divisibleby:'2'%}style='bakegroud-color:'red';'{%endif%}

    能被2整除的都变成红色(用到了过滤器)

    相关文章

      网友评论

        本文标题:django---session/redis/隔行换色

        本文链接:https://www.haomeiwen.com/subject/dmwnqftx.html