Django用户登陆及session\cookie

FILES:一个类似于字典的对象,包含所有的上传文件
COOKIES:前端后台都可以设置。一个标准的Python字典,包含所有的cookie,键和值都为字符串Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。定义于 RFC2109 和 2965 中的都已废弃,最新取代的规范是 RFC6265 [1](可以叫做浏览器缓存)cookie是服务器设置存储在浏览器的一段文本信息,例如用户登录的时候不用输入密码了。
session:是服务器里mysql的一个表基于cookie,是一个既可读又可写的类似于字典的对象,表示当前的会话,只有当Django 启用会话的支持时才可用,详细内容见“状态保持”
与python字典不同,QueryDict类型的对象用来处理同一个键带有多个值的情况。
状态保持使用session或cookie(相当于全局变量)
http协议是无状态的:每次请求都是一次新的请求,不会记得之前通信的状态
客户端与服务器端的一次通信,就是一次会话
实现状态保持的方式:在客户端或服务器端存储与会话有关的数据
存储方式包括cookie、session,会话一般指session对象
使用cookie,所有数据存储在客户端,注意不要存储敏感信息
推荐使用sesison方式,所有数据存储在服务器端,在客户端cookie中存储session_id
状态保持的目的是在一段时间内跟踪请求者的状态,可以实现跨页面访问当前请求者的数据
注意:不同的请求者之间不会共享这个数据,与请求者一一对应
session会自动生成session_key(session_key:{name:赵丽颖})的值是个字典,存储到cookie我们称作为session_id(session_id:session_key)然后再将session_id返回浏览器
session_id用来判断是否为同一客户端同一个站
使用session
设置session通过request.session来设置,可以设置过期时间
设置session  request.session[‘uname’] = ‘liuyuan’
session过期时间 request.session.set_expiry(10)
启用会话后,每个HttpRequest对象将具有一个session属性,它是一个类字典对象
get(key, default=None):根据键获取会话的值
获取session    request.session.get(键,默认值)
clear():request.session.clear()清除所有会话
flush():删除当前的会话数据并删除会话的Cookie
删除session    del request.session[键]
会话过期时间
set_expiry(value):设置会话的超时时间
如果没有指定,则两个星期后过期
如果value是一个整数,会话将在values秒没有活动后过期
若果value是一个timedelta对象,会话将在当前时间加上这个指定的日期/时间过期
如果value为0,那么用户会话的Cookie将在用户的浏览器关闭时过期
如果value为None,那么会话永不过期
用session再前端网页显示用户名,用cookie来保存用户名
Cookie
设置cookie通过HttpResponse对象来设置,也可以设置值过期时间,
设置cookie     HttpResponse.set_cookie(键,值,过期时间)
过期时间max_age 和expirys  二选1
删除cookie    
 ret = HttpResponseRedirect(reverse('index'))
 ret.delete_cookie('uname')键不存在什么都不发生
获取cookie   request.COOKIE.get(键,默认值)
用户模块auth模块
导包from django.contrib.auth.models import User
对象.set_password(password)设置加密密码
验证用户名与密码:from django.contrib.auth import authenticate,login,logout
user=authenticate(username=username,userpassword)存在返会对象不存在返回null
设置session:if uesr:
     login(request,uesr)然后return
删除session:logout(request)
前端判断是否登陆:{% if request.user.is_authenticated  %}
验证登陆可以使用装饰器:

from django.contrib.auth.decorators import login_required


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值