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实现定制交互式命令行的方法
Jul 03 Python
深入解析Python中的变量和赋值运算符
Oct 12 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
Sep 22 Python
Python Web程序部署到Ubuntu服务器上的方法
Feb 22 Python
python+splinter自动刷新抢票功能
Sep 25 Python
django项目搭建与Session使用详解
Oct 10 Python
python 限制函数执行时间,自己实现timeout的实例
Jan 12 Python
Apache部署Django项目图文详解
Jul 30 Python
Python实现图像的垂直投影示例
Jan 17 Python
Python如何批量获取文件夹的大小并保存
Mar 31 Python
Jupyter notebook 远程配置及SSL加密教程
Apr 14 Python
Django中和时区相关的安全问题详解
Oct 12 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实现字符串翻转的方法
2015/03/27 PHP
分享PHP守护进程类
2015/12/30 PHP
Yii框架连接mongodb数据库的代码
2016/07/27 PHP
Yii2.0实现生成二维码功能实例
2017/10/24 PHP
Laravel框架模型的创建及模型对数据操作示例
2019/05/07 PHP
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
2016/06/13 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
Bootstrap php制作动态分页标签
2016/12/23 Javascript
详谈AngularJs 控制器、数据绑定、作用域
2017/07/09 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
2017/10/20 Javascript
详解Webpack + ES6 最新环境搭建与配置
2018/06/04 Javascript
layui 给数据表格加序号的方法
2018/08/20 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
2019/01/18 jQuery
微信小程序HTTP接口请求封装的实现
2019/02/21 Javascript
微信小程序云开发使用方法新手初体验
2019/05/16 Javascript
js实现动态时钟
2020/03/12 Javascript
详解Typescript里的This的使用方法
2021/01/08 Javascript
[57:53]Secret vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
2019/06/17 Python
Django框架模型简单介绍与使用分析
2019/07/18 Python
PyQt5+Pycharm安装和配置图文教程详解
2020/03/24 Python
基于Python3读写INI配置文件过程解析
2020/07/23 Python
python 决策树算法的实现
2020/10/09 Python
Python提取视频中图片的示例(按帧、按秒)
2020/10/22 Python
用html5实现语音搜索框的方法
2014/03/18 HTML / CSS
Canvas在超级玛丽游戏中的应用详解
2021/02/06 HTML / CSS
美国知名的在线旅游服务网站:Priceline
2016/07/23 全球购物
Hashtable 添加内容的方式有哪几种,有什么区别?
2012/04/08 面试题
汽车销售顾问求职自荐信
2014/01/01 职场文书
长安大学毕业生自我鉴定
2014/01/17 职场文书
小学生家长评语大全
2014/02/10 职场文书
大学生翘课检讨书范文
2014/10/06 职场文书
学校推普周活动总结
2015/05/07 职场文书
Javascript 解构赋值详情
2021/11/17 Javascript