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中的数据存储到系统本地的简单方法
Apr 11 Python
Hadoop中的Python框架的使用指南
Apr 22 Python
Python编程中的文件操作攻略
Oct 16 Python
Python爬虫代理IP池实现方法
Jan 05 Python
Django 前后台的数据传递的方法
Aug 08 Python
python3基于OpenCV实现证件照背景替换
Jul 18 Python
python实现推箱子游戏
Mar 25 Python
Python实现简单查找最长子串功能示例
Feb 26 Python
简单了解django索引的相关知识
Jul 17 Python
在pytorch中为Module和Tensor指定GPU的例子
Aug 19 Python
Python中基础数据类型 set集合知识点总结
Aug 02 Python
python 安全地删除列表元素的方法
Mar 16 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
获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)
2013/06/01 PHP
Yii中render和renderPartial的区别
2014/09/03 PHP
PHP中创建和验证哈希的简单方法实探
2015/07/06 PHP
PHP使用第三方即时获取物流动态实例详解
2017/04/27 PHP
php和asp语法上的区别总结
2019/05/12 PHP
PHP面向对象程序设计之对象的遍历操作示例
2019/06/12 PHP
php 中self,this的区别和操作方法实例分析
2019/11/04 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
HR vs CL BO3 第一场 2.13
2021/03/10 DOTA
JavaScript setTimeout和setInterval的使用方法 说明
2010/03/25 Javascript
javascript的函数、创建对象、封装、属性和方法、继承
2011/03/10 Javascript
js禁止document element对象选中文本实现代码
2013/03/21 Javascript
JsRender for object语法简介
2014/10/31 Javascript
jquery读取xml文件实现省市县三级联动的方法
2015/05/29 Javascript
Node.js的Mongodb使用实例
2016/12/30 Javascript
使用svg实现动态时钟效果
2018/07/17 Javascript
react同构实践之实现自己的同构模板
2019/03/13 Javascript
django js 实现表格动态标序号的实例代码
2019/07/12 Javascript
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
2020/02/06 NodeJs
Antd-vue Table组件添加Click事件,实现点击某行数据教程
2020/11/17 Javascript
[04:39]显微镜下的DOTA2第十三期—Pis卡尔个人秀
2014/04/04 DOTA
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
2017/07/12 Python
Python编程中NotImplementedError的使用方法
2018/04/21 Python
python多个模块py文件的数据共享实例
2019/01/11 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
如何运行.ipynb文件的图文讲解
2019/06/27 Python
给 TensorFlow 变量进行赋值的方式
2020/02/10 Python
Python关于__name__属性的含义和作用详解
2020/02/19 Python
Python类和实例的属性机制原理详解
2020/03/21 Python
详解Pytorch显存动态分配规律探索
2020/11/17 Python
一些.net面试题
2014/10/06 面试题
学习之星事迹材料
2014/05/17 职场文书
办公室岗位职责
2015/02/04 职场文书
七年级作文之环保作文
2019/10/17 职场文书
mysql使用instr达到in(字符串)的效果
2022/04/03 MySQL