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的取:django
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
#上面这一句代码完成了如下事情:
#一、生成随机字符串
#二、将随机字符串写到用户浏览器cookie
#三、将随机字符串保存到服务器session
#四、在服务器随机字符串对应的字典中设置相关内容 request.session['password'] = password return HttpResponse('登录成功')
session的取:cookie
username = request.session.get('username')
#username = request.session['username'] #两种方式均可以取,可是这种若是没取到会报错 password = request.session.get('password')
session的删除:session
request.session.flush() #删除全部session
#del request.session['username'] #删除key为username的session return HttpResponse('清除成功')
PS:在django中,session默认的过时时间是两周ide
数据库: 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_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,默认修改以后才保存(默认)