• cookie和session


    Cookie操作

      obj = HttpResponse()
      # 操作cookie
      return obj
      # 如果想要操作cookie,你就不得不用obj对象
      # 设置cookie
      obj.set_cookie(key,value)
      # 获取cookie
      request.COOKIES.get(key)
      # 在设置cookie可以添加一个超时时间,针对ie浏览器需要使用expires
      obj.set_cookie(key,value,max_age=3,expires=5)
      # 如何主动删除cookie(注销)
      obj = redirect('/login/')
      obj.delete_cookie('username')
      return obj
      """
      浏览器不单单会存
      而且后面每次访问你的时候还会带着过来
      """
      # 校验用户是否登录的装饰器
      def login_auth(func):
          def inner(request,*args,**kwargs):
              request.path_info
              request.get_full_path  # 能够拿到用户想要访问的url
              target_url = request.get_full_path
              if request.COOKIES.get('username')
              	      return func(request,*args,**kwargs)
              else:
                  return redirect('/login/?next=%s'%target_url)
              return res
          return inner
      # 用户如果在没有登录的情况下想访问一个需要登录的页面,
      # 先跳转到登录页面,当用户输入正确的用户名和密码之后
      # 应该跳转到之前想要访问的页面
    

    Session操作

      """
      数据是保存在服务端的(存在哪呢??),给客户端返回的是随机字符串
    sessionid: 随机字符串
    
      1.在默认情况下,操作session的时候需要django默认的一张django_session表
    数据库迁移命令,django会自己创建很多表,而django_session就是其中的一张
    
      2.django默认session的过期时间是14天,但是也可以认为的修改它
      """
      # 设置session
      request.session['key'] = value
      # 获取
      request.session.get('key')
      # 设置过期时间
      request.session.set_expiry()
      """
      括号内可以放四种类型的参数
    1.整数  多少秒
    2.日期对象  到指定日期就失效
    3.0     一旦当前浏览器窗口关闭立刻失效
    4.不写   失效时间就取决于django内部全局session默认的失效时间
      """
      # 清除session
      request.session.delete() # 只删服务端的,客户端的不删
      request.session.flush() # 浏览器和服务端都清空
      request.session是一个对象
      django session表中的数据条数是取决于浏览器的,同一个计算机上同一个浏览器只会有一条数据生效
      (当session过期的时候可能会出现多条数据对应一个浏览器,不会持续很久,内部会自动清楚)
      主要是为了节省服务端数据库资源
  • 相关阅读:
    10. 王道考研-树与二叉树
    Shell基础论证实例
    关系型数据库与非关系型数据库区别
    中高级测试工程师面试题
    idea中cucumber环境搭建
    Java开发中对Redis的基本操作总结
    TestNG 单元测试框架(针对于testNG.xml配置)
    jmeter(四十五)常用Beanshell脚本
    Jmeter(二十一)_脚本两种参数化
    Jmeter(十五)_上传与下载
  • 原文地址:https://www.cnblogs.com/qijiaxun/p/14258540.html
Copyright © 2020-2023  润新知