cookie session

cookie

# views.py

def login(request):  # 登陆页面
    if request.mothod == 'POST':
        name = request.POST.get('user')
        pwd = request.POST.get('pwd')

        if name == 'yuan' and pwd == '123':

            ret = redirect('/index/')
            ret.set_cookie('key','value')    # 登陆成功后,给cookie赋一组键值对
       #
ret.set_cookie('username','yuan',max_age=10,expires=datetime.datetime.utcnow()+datetime.timedelta(days=3))
        # max_age设置cookie过期时间为10秒,expires设置cookie过期时间为3天(针对不同浏览器,需要同时设置这两个值,并设置为一样) return ret


def index(request):
# if request.COOKIES.get('key',None):   # 判断用户是否有cookie设置的key
  if request.COOKIES.get('key',None)=='value':  # 获取cookie的值,判断key是否为value,None代表取不到时以None代替,这样不报错
    return render(request,'index.html',locals())
  else:
    return redirect('/login/')

session(django的session默认存储在数据表中)

# views.py

def login(request):  # 登陆页面
    if request.mothod == 'POST':
        name = request.POST.get('user')
        pwd = request.POST.get('pwd')

        if name == 'yuan' and pwd == '123':
        request.session['is_login']=True  # 创建两个session
        request.session['user']=name
       
        return redirect('/index/')         
def index(request):   if request.session.get('is_login',None):  # 获取session的值,判断is_login是否有值     name = request.session.get('user')    
    return render(request,'index.html',locals())   else:     return redirect('/login/')

下面我们再来最后的总结一下cookie和session的知识点

一、操作Cookie

  获取cookie:request.COOKIES[key]

  设置cookie:response.set_cookie(key,value)

由于cookie保存在客户端的电脑上,所以,jquery也可以操作cookie。

<script src='http://830909.blog.51cto.com/static/js/jquery.cookie.js'></script>
$.cookie("list_pager_num", 30,{ path: '/' });

二、操作Session(session默认在服务器端保存15天)

  获取session:request.session[key]

  设置session:reqeust.session[key] = value

  删除session:del request.session[key]    

(这个删除其实就是把数据库的session_data更新为一个其他的值了,并没有立即删除)

request.session.set_expiry(value)
* 如果value是个整数,session会在此秒数后失效。
* 如果value是个datatime或timedelta,session就会在这个时间后失效。
* 如果value是0,用户关闭浏览器session就会失效。
* 如果value是None,session会依赖全局session失效策略。
posted @ 2018-09-10 22:28  四十不惑的编程之路  阅读(165)  评论(0编辑  收藏  举报