zoukankan      html  css  js  c++  java
  • cookie--session

    from django.shortcuts import render,HttpResponse,redirect

    # Create your views here.


    # cookie是客户端浏览器上的键值对
    # 原理:是服务器产生,发给客户端浏览器,浏览器保存起来,下次再发请求,会携带这个键值对到服务器
    # cookie覆盖:先写一个键值对,后来再写会覆盖
    # session,解决cookie不安全的问题,存在服务器上的键值对{随机字符串:{name:lqz,pwd:123}}
    # 用session必须跟cookie连用

    def login_auth(func):
    def inner(request,*args,**kwargs):
    url=request.get_full_path()
    is_true=request.COOKIES.get('is_true')
    if is_true:
    res=func(request,*args,**kwargs)
    return res
    else:
    return redirect('/test_cookie/?next=%s'%url)
    return inner


    def test_cookie(request):
    # obj=HttpResponse('ok')
    # obj.set_cookie('name','lqz')
    # return obj
    if request.method=='GET':
    return render(request,'login.html')
    else:
    name=request.POST.get('name')
    pwd=request.POST.get('pwd')

    if name=='lqz' and pwd=='123':
    next=request.GET.get('next')
    print(next)
    if next:
    obj=redirect(next)
    obj.set_cookie('is_true',True)
    return obj
    else:
    return HttpResponse('登录成功')
    else:
    obj=HttpResponse('用户名或密码错误')
    return obj

    @login_auth
    def order(request):


    return HttpResponse('订单页面')

    # 加盐的cookie
    def salt_cookie(request):
    obj=HttpResponse('ok')
    # 加盐,123是个密码,解cookie的时候需要他
    # obj.set_signed_cookie('name','lqz',salt='123')
    # max_age=5,5秒之后失效
    obj.set_cookie('name','lqz',max_age=5)
    return obj


    def delete_cookie(request):
    obj=HttpResponse('ok')
    # 指定删除名字是name的cookie
    obj.delete_cookie('name')
    return obj





    from django.shortcuts import render,HttpResponse

    # Create your views here.


    def set_session(request):
    # 随机字符串跟浏览器相关,数据跟账号相关
    # 1.生成随机字符串:dadsad
    # 2.去数据库存储
    # 随机字符串 值(字典形式) 超时时间
    # dadad {'name':'lqz','age':18,'sex':'man} 超时时间内

    # 3.写入scookie(set_cookie('sessionid','随机字符串'))

    request.session['name']='lqz'

    request.session['age ']=18
    return HttpResponse('ok')


    def get_session(request):
    # 取session 取name这个字段对应的值
    # 正常流程
    # 去cookie中取出随机字符串
    # 去session那个表查询,取出session_data的数据,解密成字典,然后取name的值

    name=request.session['name']
    print(name)
    return HttpResponse('get session')



    # 删除值
    # request.ses sion.delete(),取出cookie,随机字符串,去数据库删除随机字符串是当前值得记录
    # request.session.flush(),即删数据库又删浏览器的cookie



  • 相关阅读:
    软件开发项目失败原因分析
    浅析ASP.NET三层架构(原创)
    ASP.NET中常用的26个优化性能方法
    软件设计原则
    垃圾回收(GC,Garbage Collection)机制
    值类型和引用类型的区别
    在OpenWrt中使用socket通信
    在windows下通过samba的共享编辑过的openwrt的样式文件无法访问的解决办法
    在OpenWrt中保存数据到config
    将openwrt的系统同步时间的显示修改为19700312 14:20的格式
  • 原文地址:https://www.cnblogs.com/fushaunglin/p/10003621.html
Copyright © 2011-2022 走看看