Django项目开发中cookies和session的常用操作分析

yipeiwu_com6年前Python基础

本文实例讲述了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 sorted函数详解(高级篇)

sorted 用于对集合进行排序(这里集合是对可迭代对象的一个统称,他们可以是列表、字典、set、甚至是字符串),它的功能非常强大 1、对列表排序,返回的对象不会改变原列表 lis...

举例讲解Python程序与系统shell交互的方式

概述 考虑这样一个问题,有hello.py脚本,输出”hello, world!”;有TestInput.py脚本,等待用户输入,然后打印用户输入的数据。那么,怎么样把hello.py输...

python数据结构之链表的实例讲解

python数据结构之链表的实例讲解

在程序中,经常需要将⼀组(通常是同为某个类型的)数据元素作为整体 管理和使⽤,需要创建这种元素组,⽤变量记录它们,传进传出函数等。 ҳ...

python下MySQLdb用法实例分析

本文实例讲述了python下MySQLdb用法。分享给大家供大家参考。具体分析如下: 下载安装MySQLdb ① linux版本 http://sourceforge.net/proje...

python urllib urlopen()对象方法/代理的补充说明

python urllib urlopen()对象方法/代理的补充说明 urllib 是 python 自带的一个抓取网页信息一个接口,他最主要的方法是 urlopen(),是基于 py...