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模拟登录12306的方法
Dec 30 Python
Django框架中方法的访问和查找
Jul 15 Python
python中返回矩阵的行列方法
Apr 04 Python
Python中一个for循环循环多个变量的示例
Jul 16 Python
python支付宝支付示例详解
Aug 22 Python
python 多进程并行编程 ProcessPoolExecutor的实现
Oct 11 Python
python 画3维轨迹图并进行比较的实例
Dec 06 Python
pytorch中使用cuda扩展的实现示例
Feb 12 Python
pyqt5中动画的使用详解
Apr 01 Python
python给视频添加背景音乐并改变音量的具体方法
Jul 19 Python
使用python操作lmdb对数据读取的实例
Dec 11 Python
pandas中DataFrame重置索引的几种方法
May 24 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数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
ueditor 1.2.6 使用方法说明
2013/07/24 PHP
php中的抽象方法和抽象类
2017/02/14 PHP
JS格式化数字金额用逗号隔开保留两位小数
2013/10/18 Javascript
JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
2014/03/20 Javascript
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
jQuery的bind()方法使用详解
2015/07/15 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
2015/09/06 Javascript
JavaScript九九乘法口诀表的简单实现
2016/10/04 Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
2016/12/14 Javascript
微信小程序实现导航栏选项卡效果
2020/06/19 Javascript
完美解决axios在ie下的兼容性问题
2018/03/05 Javascript
js 数组详细操作方法及解析合集
2018/06/01 Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
2019/06/17 Javascript
微信小程序自定义导航栏(模板化)
2019/11/15 Javascript
jQuery实现聊天对话框
2020/02/08 jQuery
addEventListener()和removeEventListener()追加事件和删除追加事件
2020/12/04 Javascript
Vue3 实现双盒子定位Overlay的示例
2020/12/22 Vue.js
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
Python闭包实现计数器的方法
2015/05/05 Python
ansible作为python模块库使用的方法实例
2017/01/17 Python
Python中文件I/O高效操作处理的技巧分享
2017/02/04 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
2017/09/22 Python
Django 使用logging打印日志的实例
2018/04/28 Python
详解配置Django的Celery异步之路踩坑
2018/11/25 Python
Python Opencv实现图像轮廓识别功能
2020/03/23 Python
基于django传递数据到后端的例子
2019/08/16 Python
Myprotein葡萄牙官方网站:英国优质运动营养品牌
2016/09/12 全球购物
运动会解说词200字
2014/02/06 职场文书
上班玩游戏检讨书
2014/02/07 职场文书
后勤主管岗位职责
2014/03/01 职场文书
小学生爱国演讲稿
2014/04/25 职场文书
2014年社区计生工作总结
2014/11/18 职场文书
泰山导游词
2015/02/02 职场文书
OpenCV-Python实现怀旧滤镜与连环画滤镜
2021/06/09 Python
IIS服务器中设置HTTP重定向访问HTTPS
2022/04/29 Servers