zoukankan      html  css  js  c++  java
  • Django中cookie和session的存、取、删除

    Django中:
    cookie的存:

    response = HttpResponse('登陆成功')     #改成重定向等都可以
    response.set_cookie('username',username)
    #response.set_signed_cookie('username',username,salt='asdasd') #带签名的cookie(加盐)
    response.set_cookie('password',password)
    return response

    cookie的取:

    username = request.COOKIES.get('username')
    #username = request.get_signed_cookie('username',salt='asdasd') #获取带签名的cookie(盐要相同,不然拿不到)
    password = request.COOKIES.get('password')

    cookie的删除:

    response = HttpResponse('清除成功')      #改成重定向等都可以
    response.delete_cookie('username')
    response.delete_cookie('password')
    return response

     PS:不设置过期时间的话,默认关闭浏览器就失效

    session的存:

    request.session['username'] = username
    #上面这一句代码完成了以下事情:
    #1、生成随机字符串
    #2、将随机字符串写到用户浏览器cookie
    #3、将随机字符串保存到服务器session
    #4、在服务器随机字符串对应的字典中设置相关内容 request.session[
    'password'] = password return HttpResponse('登陆成功')

    session的取:

    username = request.session.get('username')
    #username = request.session['username'] #两种方式都可以取,但是这种如果没取到会报错 password
    = request.session.get('password')

    session的删除:

    request.session.flush()    #删除所有session
    #del request.session['username'] #删除key为username的session
    return HttpResponse('清除成功')

     PS:在django中,session默认的过期时间是两周

    数据库:
    SESSION_ENGINE = 'django.contrib.sessions.backends.db'   # 引擎(默认)
    缓存:
    SESSION_ENGINE = 'django.contrib.sessions.backends.cache'  # 引擎
    SESSION_CACHE_ALIAS = 'default'                            # 使用的缓存别名(默认内存缓存,也可以是memcache),此处别名依赖缓存的设置
    文件:
    SESSION_ENGINE = 'django.contrib.sessions.backends.file'    # 引擎
    SESSION_FILE_PATH = None                                    # 缓存文件路径,如果为None,则使用tempfile模块获取一个临时地址tempfile.gettempdir()                                                            # 如:/var/folders/d3/j9tj0gz93dg06bmwxmhh6_xm0000gn/T
    缓存+数据库:
    SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'        # 引擎
    session引擎配置
        - 配置文件中设置默认操作(通用配置):
            SESSION_COOKIE_NAME = "sessionid"                       # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串(默认)
            SESSION_COOKIE_PATH = "/"                               # Session的cookie保存的路径(默认)
            SESSION_COOKIE_DOMAIN = None                             # Session的cookie保存的域名(默认)
            SESSION_COOKIE_SECURE = False                            # 是否Https传输cookie(默认)
            SESSION_COOKIE_HTTPONLY = True                           # 是否Session的cookie只支持http传输(默认)
            SESSION_COOKIE_AGE = 1209600                             # Session的cookie失效日期(2周)(默认)
            SESSION_EXPIRE_AT_BROWSER_CLOSE = False                  # 是否关闭浏览器使得Session过期(默认)
            SESSION_SAVE_EVERY_REQUEST = False                       # 是否每次请求都保存Session,默认修改之后才保存(默认)
    session在settings.py里面的一些默认配置
    Fake it,till you make it
  • 相关阅读:
    如何利用azMan (Authorization Manager) 实现 rolebased的安全验证机制
    如何处理源dump文件的mscordacwks.dll文件与调试机上的版本不一致问题而无法使用extension cmd的问题
    UI thread client callback和UI thread WCF Service一起工作时死锁的形成原因及解决方法
    如何在 IIS 6.0 上配置托管的 Web 应用程序时使用 SPN(包括Network service ,domain acount, NLB, host header等各种情况)
    WCF中各种Transaction的分类及其相关参数的设置
    利用windbg调试class type,value type以及MethodTable等强化C#的基本概念
    如何自定义Attribute class并将其应用到相应的class
    谷歌浏览器F12调试页面学习
    上班族致富之道
    折半插入排序
  • 原文地址:https://www.cnblogs.com/wusir66/p/9838986.html
Copyright © 2011-2022 走看看