Django全栈开发_billshop 商城项目 _4 注册功能前后端含校验开发、图形验证码前后端全功能开发、短信容联云

1. 注册状态保持

状态保持
• 如果需求是注册成功后即表示用户登入成功,那么此时可以在注册成功后实现状态保持
• 如果需求是注册成功后不表示用户登入成功,那么此时不用在注册成功后实现状态保持

@@@ 我的需求是注册后跳转首页 @@@
login()方法介绍 我来写代码实现, 功能由django提供
1. 用户登入本质:
• 状态保持
• 将通过认证的用户的唯一标识信息(比如:用户ID)写入到当前浏览器的 cookie 和服务端的 session 中。
2. login()方法:
• Django用户认证系统提供了login()方法。
• 封装了写入session的操作,帮助我们快速登入一个用户,并实现状态保持。
3. login()位置:
• django.contrib.auth.init.py文件中。

开始做吧, 之前我就是留着状态保持,现在来做:
在这里插入图片描述
step 1 导入login 方法

from django.contrib.auth import login

step 2 使用login() 并查看一下该方法的脚本 :
在这里插入图片描述

封装session 操作
在这里插入图片描述
step 3
之前models.py 中我们用私有方法 def _creat_user() 这个方法return user ,当时并没有用到返回值user,现在可以用上了。
所以,将整句赋值给user 即接收user, 这个user 就能在login()中使用为user参数了,实现状态保持。
在这里插入图片描述
这时候运行注册后不会 跳转首页,但是数据库中会有注册信息,原因是什么?
想想看,
由login()方法可知, session保存在redis里。

    request.session[SESSION_KEY] = user._meta.pk.value_to_string(user)
    request.session[BACKEND_SESSION_KEY] = backend
    request.session[HASH_SESSION_KEY] = session_auth_hash

配置文件dev中,也可以看到这个逻辑,
在这里插入图片描述
而我的redis 现在还没有启动,怎么可能实现呢!就是这个道理

step 4 所以现在启动一下redis

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值