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 06 Python
python executemany的使用及注意事项
Mar 13 Python
解决Python pandas plot输出图形中显示中文乱码问题
Dec 12 Python
对Python中DataFrame选择某列值为XX的行实例详解
Jan 29 Python
Python:Numpy 求平均向量的实例
Jun 29 Python
python变量命名的7条建议
Jul 04 Python
Python实现一个带权无回置随机抽选函数的方法
Jul 24 Python
django foreignkey外键使用的例子 相当于left join
Aug 06 Python
PHP统计代码行数的小代码
Sep 19 Python
浅析python中while循环和for循环
Nov 19 Python
解决jupyter notebook 出现In[*]的问题
Apr 13 Python
Scrapy框架介绍之Puppeteer渲染的使用
Jun 19 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内存不够用的快速解决方法
2013/10/26 PHP
PHP实现与java 通信的插件使用教程
2019/08/11 PHP
解决在Laravel 中处理OPTIONS请求的问题
2019/10/11 PHP
JQuery的$命名冲突详细解析
2013/12/28 Javascript
nodejs实现黑名单中间件设计
2014/06/17 NodeJs
浅析Node.js的Stream模块中的Readable对象
2015/07/29 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
详解Angularjs filter过滤器
2016/02/06 Javascript
浅析jQuery中使用$所引发的问题
2016/05/29 Javascript
JavaScript中const、var和let区别浅析
2016/10/11 Javascript
详解jQuery的Cookie插件
2016/11/23 Javascript
Vue引入jquery实现平滑滚动到指定位置
2018/05/09 jQuery
JS 使用 window对象的print方法实现分页打印功能
2018/05/16 Javascript
JS求1到任意数之间的所有质数的方法详解
2019/05/20 Javascript
electron实现静默打印的示例代码
2019/08/12 Javascript
JS FormData对象使用方法实例详解
2020/02/12 Javascript
nuxt.js服务端渲染中axios和proxy代理的配置操作
2020/11/06 Javascript
Python实现类似比特币的加密货币区块链的创建与交易实例
2018/03/20 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
2018/05/10 Python
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
kafka-python 获取topic lag值方式
2019/12/23 Python
PyCharm常用配置和常用插件(小结)
2021/02/06 Python
python利用opencv实现颜色检测
2021/02/23 Python
button在IE6/7下的黑边去除方案
2012/12/24 HTML / CSS
css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
2014/10/10 HTML / CSS
利用CSS3实现单选框动画特效示例代码
2016/09/26 HTML / CSS
CSS3 对过渡(transition)进行调速以及延时
2020/10/21 HTML / CSS
HTML5 Canvas的常用线条属性值总结
2016/03/17 HTML / CSS
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
五好关工委申报材料
2014/05/31 职场文书
搞笑的获奖感言
2014/08/16 职场文书
2014年辅导员工作总结
2014/11/18 职场文书
2014年酒店服务员工作总结
2014/12/08 职场文书
环境建议书
2015/02/04 职场文书
如何用Node.js编写内存效率高的应用程序
2021/04/30 Javascript
mysql中如何用命令创建联合唯一索引
2022/04/20 MySQL