EXCEL中宏毒X97M.Laroux.DX1的解决办法-英雄云拓展知识分享
139
2023-11-07
【摘要】 本书摘自《Python+3自动化软件发布系统》一书中第5章,第1节,由陈刚、王洪军编著。
5.1 用户管理简介
用户管理是每一个软件系统的基本功能之一(包含用户组)。有了用户,才可以 识别每一个浏览器代表的角色,才能对其进行认证的权限管理。如果没有用户管理 功能,那么每一个人都是系统管理员,每一个人又都是普通用户,谁操作出了什么问 题,谁在进行恶意操作,都无法分辨。这样的系统,相信没有人会愿意使用的。
设计一个好的用户系统往往不是那么容易的,幸好,Django 提供的用户系统可 以快速实现基本的功能,并且可以在此基础上继续扩展以满足我们的需求。
在进入本章学习之前,先来理顺一下学习的思路。Django 的用户管理知识点, 如果用脑图来表示,如图5-1所示。
我们的学习顺序,按以下思路展开:
① 了解在 Web 开发中,Cookie 和 Session 的作用及实现。
② 在 Django 开发中,更方便地使用Session、框架提供的中间件及 App。
③ 深入了解 Django 中的 User 用户及 Group 用户组、Permission 权限模型。
④ Django 中用户注册、登录和退出功能详解。
⑤ Django 提供的密码更改和密码找回功能实现。
⑥ 了解 Django 中是怎样实现表级权限的。
⑦ 在 Django 日常开发中,在View 和 Template 中,如何方便地实现用户及权限管理。
在系统学完以上知识之后,将这些知识点结合来实现自动化发布系统的用户管
理功能。
5.2 Web 开发中的 Cookie 及 Session
Cookie 和 Session 在现在主流的 Web 用户功能设计中,就好像是一对有心电感应的连体兄弟,两者要互相配合,才能完整地实现用户认证功能。
Cookie 以文件的形式存在于浏览器端,Session 以数据表记录的形式存在于服务器端,这两者如何互动呢?这就是本节需要学习的内容。
5.2.1 Cookie
要理解 Session, 首先要搞清 Cookie 的概念。由于 HTTP 是无状态的,服务器 不能“记住”用户的信息状态,因此若同一个客户端发起了多条请求,那么服务器不能 辨别这些请求来自哪个用户,服务器不会像人一样有记忆。在你一次请求结束后,它 会很快忘掉,对它来说你的每一次请求都是新的。
HTTP 无状态的限制为 Web 应用程序的设计带来了许多不便,电商网站中的 “购物篮”功能就是一个很好的例子。当用户把商品放进购物车后,客户端必须要保存购物车的状态,否则当用户下次浏览网站时,购物车拥有的商品状态便不复存在了。
客户端和服务器必须有通信的媒介,方便服务器追踪客户端的状态,于是 Cookie 技术应运而生。Cookie, 有时也用其复数形式 Cookies, 指某些网站为了辨别用户身 份、进行 Session 跟踪而储存在用户本地终端上的数据(通常经过加密)。
Cookie 最 早 是 网 景 公 司 的 前 雇 员 Lou Montulli 在 1 9 9 3 年 3 月 发 明 的 。Cookie由服务器端生成,发送给 User-Agent (一般是浏览器),浏览器会将 Cookie 的 key/ value 保存到某个目录下的文本文件内,下次请求同一网站时就发送该 Cookie 给服 务器(前提是浏览器设置为启用Cookie) 。Cookie 的名称和值可以由服务器端开发, 自己定义,这样服务器可以知道该用户是否是合法用户以及是否需要重新登录等。 服务器可以利用Cookie 包含信息的任意性来筛选并经常性维护这些信息,以判断在 HTTP 传输中的状态。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。