login视图函数:
      def login(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
if username == 'jason' and password == '':
old_path = request.GET.get('next')
if old_path:
obj = redirect(old_path)
else:
obj = redirect('/home/')
# 用户登录成功 朝浏览器设置一个cookie
obj.set_cookie('name','jason',expires=7*24*3600)
return obj
return render(request,'login.html')

     制作登陆校验装饰器:
from functools import wraps
def login_auth(func):
@wraps(func)
def inner(request,*args,**kwargs):
# 校验cookie
# print(request.get_full_path())
old_path = request.get_full_path()
if request.COOKIES.get('name'):
return func(request,*args,**kwargs)
return redirect('/login/?next=%s'%old_path)
return inner 用户注销视图函数:
def logout(request):
rep = redirect("/login/")
rep.delete_cookie("user") # 删除用户浏览器上之前设置的usercookie值
return rep 设置cookie set_cookie()
使用cookie request.COOKIES
删除cookie delete_cookie

session用法大同小异
    session
设置session
request.session['name'] = 'jason' #这句话完成了下面三件事情
# 1.先生成一个随机的字符串
# 2.在django session表中存储该随机字符串与数据的记录
# 3.将随机的字符串发送给客户端浏览器 获取session
request.session.get('name')
# 1.django自动获取浏览器随机字符串取django session表里面比对
# 2.如果比对成功 会将当前随机字符串对应的数据赋值给request.session
# 3.通过request.session操作该数据(数据不存在也不会影响我们的业务逻辑) 浏览器会设置一个键为sessionid来存放session值 # 删除当前会话的所有Session数据,在用户注销时可用
request.session.delete()
  
# 删除当前的会话数据并删除会话的Cookie。在用户注册时可用
request.session.flush()
这用于确保前面的会话数据不可以再次被用户的浏览器访问
例如,django.contrib.auth.logout() 函数中就会调用它。 # 设置会话Session和Cookie的超时时间
request.session.set_expiry(value)
* 如果value是个整数,session会在些秒数后失效。
* 如果value是个datatime或timedelta,session就会在这个时间后失效。
* 如果value是0,用户关闭浏览器session就会失效。
* 如果value是None,session会依赖全局session失效策略。 django默认的session存活时间是两周(14天)******

最新文章

  1. CSharpGL(0)一个易学易用的C#版OpenGL
  2. jQuery手机端触摸卡片切换效果
  3. VIM下的跳转练习
  4. Mysql 启动错误:the server quit without updating pid
  5. C#编程语言与面向对象—— 多态
  6. Python之路【第十九篇】:爬虫
  7. VB中的属性、方法和事件概念解析
  8. [HDOJ2717]Catch That Cow
  9. 逻辑回归的分布式实现 [Logistic Regression / Machine Learning / Spark ]
  10. JVM的相关知识整理和学习--(转载)
  11. WPF:实现主应用程序单一实例运行方式总结
  12. easy ui 学习笔记,不断整理中............
  13. 如何从mysql中将数据导入到sqlserver
  14. BZOJ_1552_[Cerc2007]robotic sort_splay
  15. Web部分
  16. Golang 入门 : 字符串
  17. zombodb 几点说明
  18. ContentProvider使用总结
  19. 【漏洞复现】ES File Explorer Open Port Vulnerability - CVE-2019-6447
  20. MikroTik RouterOS使用SATA光驱安装时提示:no CD-ROM found press ENTER to reboot

热门文章

  1. Vue引入非npm的js库
  2. MyBankgon功能
  3. P4149 [IOI2011]Race 点分治
  4. vue中把props中的值赋值给data
  5. 在Ubuntu上安装openResty #1
  6. Selenium高亮显示定位到的元素
  7. DELPHI安卓定位权限申请
  8. 初中知识回顾tan,sin,cos关系
  9. Add hyperlink to textblock wpf
  10. 安装Chrome扩展程序xpath