浅析Django中关于session的使用


Posted in Python onDecember 30, 2019

一、Session的概念

cookie是在浏览器端保存键值对数据,而session是在服务器端保存键值对数据
session 的使用依赖 cookie:在使用Session后,会在Cookie中存储一个sessionid的数据,每次请求时浏览器都会将这个数据发给服务器,服务器在接收到sessionid后,会根据这个值找出这个请求者的Session。

二、Django中session的使用

session键值对数据保存

浅析Django中关于session的使用

session数据默认保存在django项目的一张数据库表中(表名为:django_session),保存格式如下:

浅析Django中关于session的使用

 三、数据操作:

以键值对的格式写session

request.session['键']=值

根据键读取值

request.session.get('键',默认值)
# 或者
request.session['键']

清除所有session,在存储中删除值的部分 

request.session.clear()

清除session数据,在存储中删除session的整条数据

request.session.flush()

删除session中的指定键及值,在存储中只删除某个键及对应的值

del request.session['键']

设置session数据有效时间; 如果不设置,默认过期时间为两周

request.session.set_expiry(value)

  • 如果value是一个整数,则 session数据 将在value秒没有活动后过期。
  • 如果value为None,那么会话永不过期。
  • 如果value为0,那么用户会话的Cookie将在用户的浏览器关闭时过期。

四、以下是使用例子:

# 发短信接口
def sms_send(request):
 # http://localhost:8000/duanxin/duanxin/sms_send/?phone=18434288349
 # 1 获取手机号
 phone = request.GET.get('phone')
 # 2 生成6位验证码
 code = aliyunsms.get_code(6, False)
 # 3 缓存到Redis
 #cache.set(phone,code,60) #60s有效期
 #print('判断缓存中是否有:',cache.has_key(phone))
 #print('获取Redis验证码:',cache.get(phone))
 #暂时用session处理
 request.session['phone'] = code
 request.session.set_expiry(300) #设置5分钟后过期
 print('判断缓存中是否有:', request.session.get('phone'))
 print('获取session验证码:',request.session.get('phone'))
 # 4 发短信
 result = aliyunsms.send_sms(phone, code)
 return HttpResponse(result)
# 短信验证码校验
def sms_check(request):
 # /duanxin/sms_check/?phone=xxx&code=xxx
 # 1. 电话和手动输入的验证码
 phone = request.GET.get('phone')
 code = request.GET.get('code')
 # 2. 获取redis中保存的code
 #print('缓存中是否包含:',cache.has_key(phone))
 #print('取值:',cache.get(phone))
 #cache_code = cache.get(phone)
 #获取session里的code
 print('取值:', request.session.get('phone'))
 cache_code = request.session.get('phone')
 # 3. 判断
 if code == cache_code:
 return HttpResponse(json.dumps({'result':'OK'}))
 else:
 return HttpResponse(json.dumps({'result':'False'}))

总结

以上所述是小编给大家介绍的Django下关于session的使用,希望对大家有所帮助!

Python 相关文章推荐
Python中对列表排序实例
Jan 04 Python
flask + pymysql操作Mysql数据库的实例
Nov 13 Python
python3实现SMTP发送邮件详细教程
Jun 19 Python
5分钟 Pipenv 上手指南
Dec 20 Python
Python 实现两个服务器之间文件的上传方法
Feb 13 Python
详解Python3中setuptools、Pip安装教程
Jun 18 Python
python中sklearn的pipeline模块实例详解
May 21 Python
keras K.function获取某层的输出操作
Jun 29 Python
Python Selenium模块安装使用教程详解
Jul 09 Python
Python读写压缩文件的方法
Jul 30 Python
深度学习详解之初试机器学习
Apr 14 Python
PyCharm 安装与使用配置教程(windows,mac通用)
May 12 Python
使用pickle存储数据dump 和 load实例讲解
Dec 30 #Python
在Python中利用pickle保存变量的实例
Dec 30 #Python
python Popen 获取输出,等待运行完成示例
Dec 30 #Python
Python3常见函数range()用法详解
Dec 30 #Python
Python Pickle 实现在同一个文件中序列化多个对象
Dec 30 #Python
python使用HTMLTestRunner导出饼图分析报告的方法
Dec 30 #Python
用python爬取历史天气数据的方法示例
Dec 30 #Python
You might like
Mysql中limit的用法方法详解与注意事项
2008/04/19 PHP
php页面消耗内存过大的处理办法
2013/03/18 PHP
PHP中使用FFMPEG获取视频缩略图和视频总时长实例
2014/05/04 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
php array 转json及java 转换 json数据格式操作示例
2019/11/13 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
php判断数组是否为空的实例方法
2020/05/10 PHP
asp javascript 实现关闭窗口时保存数据的办法
2007/11/24 Javascript
jquery 图片预加载 自动等比例缩放插件
2008/12/25 Javascript
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
2009/07/19 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
2014/05/05 Javascript
JavaScript使用cookie记录临时访客信息的方法
2015/04/07 Javascript
js字符串操作方法实例分析
2015/05/06 Javascript
XML、HTML、CSS与JS的区别整理
2016/02/18 Javascript
Bootstrap风格的WPF样式
2016/12/07 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
2016/12/08 Javascript
JS中传递参数的几种不同方法比较
2017/01/20 Javascript
Vue+iview+webpack ie浏览器兼容简单处理
2019/09/20 Javascript
vue 路由守卫(导航守卫)及其具体使用
2020/02/25 Javascript
[09:37]2018DOTA2国际邀请赛寻真——不懈追梦的Team Serenity
2018/08/13 DOTA
python 基础学习第二弹 类属性和实例属性
2012/08/27 Python
Python中字典和集合学习小结
2017/07/07 Python
Python网络编程 Python套接字编程
2017/09/13 Python
对python 各种删除文件失败的处理方式分享
2018/04/24 Python
python爬取哈尔滨天气信息
2018/07/14 Python
Django发送邮件和itsdangerous模块的配合使用解析
2019/08/10 Python
Python continue语句实例用法
2020/02/06 Python
tensorflow 动态获取 BatchSzie 的大小实例
2020/06/30 Python
安装并免费使用Pycharm专业版(学生/教师)
2020/09/24 Python
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
医校毕业生自我鉴定
2014/01/25 职场文书
《威尼斯的小艇》教学反思
2014/02/17 职场文书
教师党员自我评议不足范文
2014/10/19 职场文书
违反纪律检讨书范文
2015/05/07 职场文书
浅谈Python列表嵌套字典转化的问题
2021/04/07 Python