Django博客系统(状态保持)
  TEZNKK3IfmPf 2023年11月13日 19 0

说明:

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

当前的需求是:注册成功后即表示用户认证通过

1. login()方法介绍

  1. 状态保持:
    • 将通过认证的用户的唯一标识信息(比如:用户ID)写入到当前session会话中
  2. login()方法:
    • Django用户认证系统提供了login()方法
    • 封装了写入session的操作,帮助我们快速实现状态保持
  3. login()位置:

    • django.contrib.auth.__init__.py文件中

      login(request, user)
      

2. login()方法使用

# 保存注册数据
try:
    user=User.objects.create_user(username=mobile,mobile=mobile, password=password)
except DatabaseError:
    return HttpResponseBadRequest('注册失败')

# 实现状态保持
login(request, user)

# 响应注册结果
return redirect(reverse('home:index'))

3. 查看状态保持结果

 Django博客系统(状态保持)

Django博客系统(状态保持)

 【 注册成功后cookie中的session_id和redis中的session信息相同】

4. 设置首页所需的用户名信息和登录状态

1.设置cookie代码

        # 保存注册数据
        try:
            user=User.objects.create_user(username=mobile,mobile=mobile, password=password)
        except DatabaseError:
            return HttpResponseBadRequest('注册失败')

        # 实现状态保持
        from django.contrib.auth import login
        login(request, user)


        #跳转到首页
        response = redirect(reverse('home:index'))
        #设置cookie
        #登录状态,会话结束后自动过期
        response.set_cookie('is_login',True)
        #设置用户名有效期一个月
        response.set_cookie('username',user.username,max_age=30*24*3600)

        return response

2.查看cookie数据

Django博客系统(状态保持)

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   39   0   0 python开发语言
  TEZNKK3IfmPf   2024年05月31日   28   0   0 python
  TEZNKK3IfmPf   2024年05月31日   31   0   0 python
TEZNKK3IfmPf