login_02
Posted 糖猴子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了login_02相关的知识,希望对你有一定的参考价值。
一、cookie和session
1、cookie
透明的将信息保存在浏览器/客户端里面---类似于使用的存折
2、session
只有将相对应数据展示给用户,其他信息保存在服务器--类似于银行卡
二、两者的使用
1、HttpResponseRedirect
重定向跳转到某个页面(新路径)
2、页面跳转配置
3、登录成功之后在跳转页面返回登录名
3.1、方法一:数据的纯传递方式
3.2、方法二:利用cookie实现(不安全,信息会一直暴露出来)
通过key将用户名给保存,保存的时长
3.2、session方法(推荐、较为安全)
cd 到相对应的项目下,终端输入:python3 manage.py migrate 生成django_session表
4、链接数据库
4.1、打开SQLite manager客户端,在django_session数据库表里面可以查到相对应的数据
5、登录的判断逻辑完善
5.1、Django自带的用户系统(auth_user表)
5.2、创建超级管理员账号
终端输入命令:python3 manage.py createsuperuser(创建超管账号)
利用账号在http://127.0.0.1:8000/admin/ 页面登录
5.3、登陆到后台可创建超管账号
修改后台添加的账号
6、views文件登陆场景判断(通过查询数据库登陆)
6.1、是否为post请求,如果不是的话返回首页
6.2、为post请求,账号、密码为空-->返回首页并且提示账号或者密码为空
6.3、post请求,账号、密码非空,调用Django下面的认证方法判断用户是否存在,存在的话进行登录,写session并且跳转到管理页
6.4、post请求,账号、密码非空,调用Django下面的认证方法判断用户是否存在,不存在的话返回首页,并且返回错误信息
7、登录跳转页面添加前置条件(不能直接利用URL后缀就直接登陆)
7.1、问题描述
7.2、解决方法(未登录限制登录到相对应的页面)
7.3、直接请求路径跳转到首页
以上是关于login_02的主要内容,如果未能解决你的问题,请参考以下文章
Django:使用@login_required 在视图上测试失败