Django中cookie和session的存、取、删除

枫铃4年前 (2021-06-26)Python268

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的存:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
request.session['username'] = username
#上面这一句代码完成了以下事情:
#1、生成随机字符串
#2、将随机字符串写到用户浏览器cookie
#3、将随机字符串保存到服务器session
#4、在服务器随机字符串对应的字典中设置相关内容
request.session['password'] = password
return HttpResponse('登陆成功')

session的取:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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_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,默认修改之后才保存(默认)

相关文章

利用python同步windows和linux文件

写python脚本的初衷,每次在windows编辑完文件后,想同步到linux上去,只能够登录服务器,...

爬虫基本原理

爬虫基本原理 一、爬虫是什么? 百度百科和维基百科对网络爬虫的定义:简单来说爬虫就是抓取目标网站内容的工具,一般是根据定义的行...

Django 函数和方法的区别

函数和方法的区别 1、函数要手动传self,方法不用传 2、如果是一个函数,用类名去调用,如果是一个方法...

Django 知识补漏单例模式

单例模式:(说白了就是)创建一个类的实例。在 Python 中,我们可以用多种方法来实现单例模式&#x...

Django基础知识MTV

Django简介 Django是使用Python编写的一个开源Web框架。可以用它来快速搭建一个高性能的网站。 Django也是一个MVC框架。但是在Dj...

Python mysql 索引原理与慢查询优化

一 介绍 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。