5.1登录界面
只涉及到查询数据库,容易实现:
5.2【cookie、session】记录用户访问信息
【逻辑】request请求访问只有一次性,每次访问后将清除信息。
session能记录用户访问期间的信息。用户登录后随机生成一个字符串,写到cookie中,作为访问标识,然后可以用session记录用户信息,在用户访问的整个阶段将一直存在。(参考jsp知识)
【创建方法】在验证成功用户名和密码后,插入session信息,自动生成cookie,然后再重定向登录成功。
【验证cookie】数据库中表django_session记录了访问信息cookie值+session数据。
【使用session数据】
session的数据以字典形式保存,用(request.session.关键字.关键字)的形式引用数据
例子:在用户登录成功后,网站右上角将通过引用session信息显示用户的姓名。
5.3限制未登录者的访问权
【逻辑】只有登录成功后,才能访问其他页面如部门管理、用户管理等。
【一般方法】在每个页面的函数中增加一个判断信息,只有session中存在info数据才能访问。但非常繁琐。
【●●●中间件方法】
——逻辑:request请求在经过各种中间件类后,才能进行函数处理。接着response又反过来经过中间件才能传给客户端。
——使用方法:
1)创建一个py文件,定义中间件的类
2)在settings中与中间件的类链接。
——具体应用:实现访问限制:
1)创建中间件类,return代表通过,重定向或HttpResponse代表不通过。只有在登录页面或登录成功才能通过。
2)链接:
3)其余不用动,效果:未登录时输入部门管理等非登录页面,会跳转到登录页面要求用户登录
5.4注销登录功能
定义一个注销函数即可,可清除cookie信息:
5.4图片验证码功能
图片验证码
【逻辑】html中增加一个img图片,定向于一个URL,通过这个URL进行函数处理,生成动态图片。
①.登录html中增加文本框和动态图片,src即动态图片的URL。
②增加URL:
③创建动态图片文件app01/utils/code.py
④构造函数:
⑤image/code/页面同样不受访问限制: