Django 实战2:利用 Session 实现自动登录机制

本文介绍了如何使用Django的Session功能实现自动登录机制。通过新建项目、配置settings.py、创建model、form、视图及模板,详细阐述了自动登录的实现步骤和原理。在设置中启用SESSION功能并与Cookie结合,使用户在不关闭浏览器的情况下保持登录状态。
摘要由CSDN通过智能技术生成

640

题图:by thefolkpr0ject from Instagram

640

上篇文章中讲到 Django 如何启动以及配置 sessions 功能。sessions 功能用是跟踪用户的状态,经常结合 Cookie 功能实现自动登录功能。 所谓的“自动登录”指的是:我们登录一些网站,在不关闭浏览器以及距离上次登录时间不是很长的情况下。无论我们在新的标签页打开网站,还是关闭页面重新打开网站,登录状态一直保持着。本文内容有两个:一是利用 Django 实现自动登录功能,二是揭开“自动登录”的神秘面纱。

1 新建项目

我为了将本系列所有文章的示例代码保持集中状态,所以直接在 Django_demo 项目中创建应用。如果第一次看这文章,需要先创建项目(project),再创建应用(app)。我新建的应用是 demo_session

640

然后在 setting.py 中启动请用,并检查 sessions 组件是否启动。

640


因为需要 Cookie 功能,所以同样需要在 settings.py 增加一些配置。

SESSION_COOKIE_NAME = "sessionid"       # Session的cookie保存在浏览器上时的key
SESSION_COOKIE_PATH = "/"               # Session的cookie保存的路径(默认)
SESSION_COOKIE_DOMAIN = None            # Session的cookie保存的域名(默认)
SESSION_COOKIE_SECURE = False           # 是否Https传输cookie
SESSION_COOKIE_HTTPONLY = True          # 是否Session的cookie只支持http传输(默认)
SESSION_COOKIE_AGE = 1209600            # Session的cookie失效日期(2周)(默认)
SESSION_SAVE_EVERY_REQUEST = False      # 是否设置关闭浏览器使得Session过期
SESSION_COOKIE_AT_BROWSER_CLOSE = False  # 是否每次请求都保存Session,默认修改之后才能保存

如果你将 SESSION_SAVE_EVERY_REQUEST 设置为 True, 那么关闭浏览器之后,需要重新登录。

2 流程

应用中会涉及到 3 个页面,所以我绘制流程图帮助理解。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值