Django项目开发中cookies和session的常用操作分析


Posted in Python onJuly 03, 2018

本文实例讲述了Django项目开发中cookies和session的常用操作。分享给大家供大家参考,具体如下:

COOKIES操作

检查cookies是否存在:

request.COOKIES.has_key('<cookie_name>')

获取cookies:

request.COOKIES.get('visits', '1')
if 'last_visit' in request.COOKIES:
 request.COOKIES['last_visit']

设置cookies:

response.set_cookie('<cookie_name>', value)

SESSION操作

获取session:

fav_color = request.session.get('fav_color', 'red')
fav_color = request.session['fav_color']

设置session:

request.session['visits'] = visits

删除session:

del request.session['fav_color']

如果给出的key 在会话中不存在,将抛出 KeyError。

判断包含session:

'fav_color' in request.session

清除session数据库

python manage.py clearsessions

附:Django基于自定义cookies 的登录,注册,退出功能示例:

#注册
def regist(req):
  if req.method == 'POST':
    uf = UserForm(req.POST)
    if uf.is_valid():
      #获得表单数据
      username = uf.cleaned_data['username']
      password = uf.cleaned_data['password']
      #添加到数据库
      User.objects.create(username= username,password=password)
      return HttpResponse('regist success!!')
  else:
    uf = UserForm()
  return render_to_response('regist.html',{'uf':uf}, context_instance=RequestContext(req))
#登陆
def login(req):
  if req.method == 'POST':
    uf = UserForm(req.POST)
    if uf.is_valid():
      #获取表单用户密码
      username = uf.cleaned_data['username']
      password = uf.cleaned_data['password']
      #获取的表单数据与数据库进行比较
      user = User.objects.filter(username__exact = username,password__exact = password)
      if user:
        #比较成功,跳转index
        response = HttpResponseRedirect('/online/index/')
        #将username写入浏览器cookie,失效时间为3600
        response.set_cookie('username',username,3600)
        return response
      else:
        #比较失败,还在login
        return HttpResponseRedirect('/online/login/')
  else:
    uf = UserForm()
  return render_to_response('login.html',{'uf':uf},context_instance=RequestContext(req))
#登陆成功
def index(req):
  username = req.COOKIES.get('username','')
  return render_to_response('index.html' ,{'username':username})
#退出
def logout(req):
  response = HttpResponse('logout !!')
  #清理cookie里保存username
  response.delete_cookie('username')
  return response

希望本文所述对大家基于Django框架的Python程序设计有所帮助。

Python 相关文章推荐
python的即时标记项目练习笔记
Sep 18 Python
举例讲解Python设计模式编程的代理模式与抽象工厂模式
Jan 16 Python
使用python 爬虫抓站的一些技巧总结
Jan 10 Python
python scatter散点图用循环分类法加图例
Mar 19 Python
python实现函数极小值
Jul 10 Python
python解释器spython使用及原理解析
Aug 24 Python
python 模拟贷款卡号生成规则过程解析
Aug 30 Python
django 实现celery动态设置周期任务执行时间
Nov 19 Python
Python timeit模块的使用实践
Jan 13 Python
python实现FTP循环上传文件
Mar 20 Python
Django drf请求模块源码解析
Jun 08 Python
python区块链持久化和命令行接口实现简版
May 25 Python
Python嵌套列表转一维的方法(压平嵌套列表)
Jul 03 #Python
Python使用matplotlib实现基础绘图功能示例
Jul 03 #Python
Pandas 同元素多列去重的实例
Jul 03 #Python
Python中Numpy包的安装与使用方法简明教程
Jul 03 #Python
Python单元测试简单示例
Jul 03 #Python
Python3使用pandas模块读写excel操作示例
Jul 03 #Python
Python+pandas计算数据相关系数的实例
Jul 03 #Python
You might like
一个简单的php实现的MySQL数据浏览器
2007/03/11 PHP
PHP stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
php自动获取字符串编码函数mb_detect_encoding
2011/05/31 PHP
一漂亮的PHP图片验证码实例
2014/03/21 PHP
PHP hex2bin()函数用法讲解
2019/02/25 PHP
浅析PHP中json_encode与json_decode的区别
2020/07/15 PHP
jquery插件之easing 动态菜单
2010/08/21 Javascript
Js如何判断客户端是PC还是手持设备简单分析
2012/11/22 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
2015/10/09 Javascript
js数组如何添加json数据及js数组与json的区别
2015/10/27 Javascript
javascript实现的网站访问量统计代码
2015/12/20 Javascript
详解jQuery中的empty、remove和detach
2016/04/11 Javascript
Bootstrap开关(switch)控件学习笔记分享
2016/05/30 Javascript
玩转JavaScript OOP - 类的实现详解
2016/06/08 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
2016/12/06 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
nodejs中全局变量的实例解析
2017/03/07 NodeJs
详解tween.js 中文使用指南
2018/01/05 Javascript
js异步接口并发数量控制的方法示例
2020/11/22 Javascript
Python中的urllib模块使用详解
2015/07/07 Python
Windows下安装Django框架的方法简明教程
2018/03/28 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
2018/04/19 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
Python3.5实现的三级菜单功能示例
2019/03/25 Python
Tensorflow实现多GPU并行方式
2020/02/03 Python
Python pathlib模块使用方法及实例解析
2020/10/05 Python
python中time.ctime()实例用法
2021/02/03 Python
印度领先的在线时尚商店:Koovs
2016/08/28 全球购物
Puritan’s Pride(普丽普莱)官方网站:美国最大最全的保健品公司之一
2016/10/23 全球购物
英国家庭和商业健身器材购物网站:Fitness Options
2018/07/05 全球购物
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
护士自我评价
2014/02/01 职场文书
呼兰河传读书笔记
2015/06/30 职场文书
《确定位置》教学反思
2016/02/18 职场文书
ICOM R71E和R72E图文对比解说
2022/04/07 无线电
VUE递归树形实现多级列表
2022/07/15 Vue.js