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的Django框架中的select_related函数对QuerySet 查询的优化
Apr 01 Python
在Python的Django框架中创建语言文件
Jul 27 Python
Python3 模块、包调用&amp;路径详解
Oct 25 Python
python中requests和https使用简单示例
Jan 18 Python
Python 通配符删除文件的实例
Apr 24 Python
python实现判断一个字符串是否是合法IP地址的示例
Jun 04 Python
对Django外键关系的描述
Jul 26 Python
Python判断字符串是否xx开始或结尾的示例
Aug 08 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
Jan 08 Python
python3 字符串知识点学习笔记
Feb 08 Python
Spy++的使用方法及下载教程
Jan 29 Python
python 开心网和豆瓣日记爬取的小爬虫
May 29 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概述.
2006/10/09 PHP
写php分页时出现的Fatal error的解决方法
2011/04/18 PHP
php判断当前用户已在别处登录的方法
2015/01/06 PHP
javascript Math.random()随机数函数
2009/11/04 Javascript
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
js判断为空Null与字符串为空简写方法
2014/02/24 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
Javascript中的几种继承方式对比分析
2016/03/22 Javascript
Bootstrap轮播插件使用代码
2016/10/11 Javascript
JavaScript函数节流和函数防抖之间的区别
2017/02/15 Javascript
整理关于Bootstrap导航的慕课笔记
2017/03/29 Javascript
通过命令行生成vue项目框架的方法
2017/07/12 Javascript
vue项目打包上传github并制作预览链接(pages)
2019/04/19 Javascript
Angular4.0动画操作实例详解
2019/05/10 Javascript
Vue之beforeEach非登录不能访问的实现(代码亲测)
2019/07/18 Javascript
详解设计模式中的工厂方法模式在Python程序中的运用
2016/03/02 Python
Vue的el-scrollbar实现自定义滚动
2018/05/29 Python
详解Django解决ajax跨域访问问题
2018/08/24 Python
Python Flask 搭建微信小程序后台详解
2019/05/06 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
2020/01/21 Python
python实现飞船游戏的纵向移动
2020/04/24 Python
日本民宿预约平台:STAY JAPAN
2017/07/01 全球购物
有机童装:Toby Tiger
2018/05/23 全球购物
eVitamins日本:在线购买折扣维生素、补品和草药
2019/04/04 全球购物
Perfume’s Club德国官网:在线购买香水
2019/04/08 全球购物
管理失职检讨书
2014/02/12 职场文书
安全口号大全
2014/06/21 职场文书
村干部群众路线整改措施思想汇报
2014/10/12 职场文书
门市房租房协议书
2014/12/04 职场文书
酒店辞职书范文
2015/02/26 职场文书
2015年教务工作总结
2015/05/23 职场文书
解析:创业计划书和商业计划书二者之间到底有什么区别
2019/08/14 职场文书
导游词之山西祁县乔家大院
2019/10/14 职场文书
MySQL安装后默认自带数据库的作用详解
2021/04/27 MySQL
python绘图subplots函数使用模板的示例代码
2021/04/30 Python
CSS中使用grid布局实现一套模板多种布局
2022/07/15 HTML / CSS