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在命令行下使用google翻译(带语音)
Jan 16 Python
各种Python库安装包下载地址与安装过程详细介绍(Windows版)
Nov 02 Python
Python新手们容易犯的几个错误总结
Apr 01 Python
Python之web模板应用
Dec 26 Python
如何使用VSCode愉快的写Python于调试配置步骤
Apr 06 Python
浅析python 中大括号中括号小括号的区分
Jul 29 Python
Python 实现Numpy中找出array中最大值所对应的行和列
Nov 26 Python
Pandas —— resample()重采样和asfreq()频度转换方式
Feb 26 Python
Python Socket TCP双端聊天功能实现过程详解
Jun 15 Python
Python中Cookies导出某站用户数据的方法
May 17 Python
yolov5返回坐标的方法实例
Mar 17 Python
python数据处理之Pandas类型转换
Apr 28 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+mysql不用递归实现的无限级分类实例(非递归)
2014/07/08 PHP
Laravel 4 初级教程之安装及入门
2014/10/30 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
PHP实现验证码校验功能
2017/11/16 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
PHP 对象继承原理与简单用法示例
2020/04/21 PHP
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
JavaScript数字和字符串转换示例
2014/03/26 Javascript
微信小程序movable view移动图片和双指缩放实例代码
2017/08/08 Javascript
Vue.js实现输入框绑定的实例代码
2017/08/24 Javascript
vue2利用Bus.js如何实现非父子组件通信详解
2017/08/25 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
详解关于vue2.0工程发布上线操作步骤
2018/09/27 Javascript
layui2.0使用table+laypage实现真分页
2019/07/27 Javascript
Vue 中可以定义组件模版的几种方式
2019/08/06 Javascript
p5.js绘制旋转的正方形
2019/10/23 Javascript
微信小程序实现锚点功能
2019/11/20 Javascript
node.js +mongdb实现登录功能
2020/06/18 Javascript
uin-app+mockjs实现本地数据模拟
2020/08/26 Javascript
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
pymongo给mongodb创建索引的简单实现方法
2015/05/06 Python
浅谈python中的__init__、__new__和__call__方法
2017/07/18 Python
Flask项目中实现短信验证码和邮箱验证码功能
2019/12/05 Python
Python如何实现小程序 无限求和平均
2020/02/18 Python
python如何删除文件、目录
2020/06/23 Python
Python接收手机短信的代码整理
2020/08/02 Python
浅谈HTML5 服务器推送事件(Server-sent Events)
2017/08/01 HTML / CSS
AmazeUI 列表的实现示例
2020/08/17 HTML / CSS
Melissa香港官网:MDreams
2016/07/01 全球购物
婚礼答谢宴主持词
2014/03/14 职场文书
优秀语文教师事迹
2014/05/18 职场文书
人事任命通知
2015/04/20 职场文书
退休教师追悼词
2015/06/23 职场文书
pytorch中的model.eval()和BN层的使用
2021/05/22 Python
Django路由层如何获取正确的url
2021/07/15 Python
vue/cli 配置动态代理无需重启服务的方法
2022/05/20 Vue.js