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 06 Python
解决Python中字符串和数字拼接报错的方法
Oct 23 Python
Python实现小数转化为百分数的格式化输出方法示例
Sep 20 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
Apr 18 Python
python版本单链表实现代码
Sep 28 Python
利用Python半自动化生成Nessus报告的方法
Mar 19 Python
pandas 数据结构之Series的使用方法
Jun 21 Python
python实现名片管理器的示例代码
Dec 17 Python
Python 捕获代码中所有异常的方法
Aug 03 Python
python 利用Pyinstaller打包Web项目
Oct 23 Python
python 检测图片是否有马赛克
Dec 01 Python
baselines示例程序train_cartpole.py的ImportError
May 20 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
使用PHPMyAdmin修复论坛数据库的图文方法
2012/01/09 PHP
基于PHP选项与信息函数的使用详解
2013/05/10 PHP
解析php函数method_exists()与is_callable()的区别
2013/06/21 PHP
详解php命令注入攻击
2019/04/06 PHP
PHP实现简单的协程任务调度demo示例
2020/02/01 PHP
JavaScript类库D
2010/10/24 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
js函数中onmousedown和onclick的区别和联系探讨
2013/05/19 Javascript
js的.innerHTML = &quot;&quot;IE9下显示有错误的解决方法
2013/09/16 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
node.js中的querystring.escape方法使用说明
2014/12/10 Javascript
JavaScript中消除闭包的一般方法介绍
2015/03/16 Javascript
js鼠标点击按钮切换图片-图片自动切换-点击左右按钮切换特效代码
2015/09/02 Javascript
jquery实现两边飘浮可关闭的对联广告
2015/11/27 Javascript
Vuex之理解Getters的用法实例
2017/04/19 Javascript
nodejs入门教程一:概念与用法简介
2017/04/24 NodeJs
vue之a-table中实现清空选中的数据
2019/11/07 Javascript
python动态加载变量示例分享
2014/02/17 Python
跟老齐学Python之画圈还不简单吗?
2014/09/20 Python
Python基于opencv的图像压缩算法实例分析
2018/05/03 Python
对dataframe进行列相加,行相加的实例
2018/06/08 Python
Python: 传递列表副本方式
2019/12/19 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
2020/03/12 Python
python中的列表和元组区别分析
2020/12/30 Python
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
三只松鼠官方旗舰店:全网坚果销售第1
2017/11/25 全球购物
Muziker英国:中欧最大的音乐家商店
2020/02/05 全球购物
茱莉蔻美国官网:Jurlique美国
2020/11/24 全球购物
杭州-飞时达软件有限公司.net笔面试
2012/04/28 面试题
学校关爱留守儿童活动方案
2014/08/27 职场文书
七一建党节演讲稿
2014/09/11 职场文书
个人师德师风自我剖析材料
2014/09/29 职场文书
幼儿园见习报告
2014/10/30 职场文书
先进单位申报材料
2014/12/25 职场文书
八年级作文之感恩
2019/11/22 职场文书
go使用Gin框架利用阿里云实现短信验证码功能
2021/08/04 Golang