djiang+xadmin学习笔记四:用户登录注册

一、首页和登录页面的配置
1、新建static文件夹,将css、js、img、images、media全部拷贝到该文件夹中
2、将index.html放入templates文件夹下
3、settings.py文件中加:


image.png

4、index.html文件中的静态文件路径修改:../ 改为/static/
5、将login.html放入templates文件夹下,同样修改文件中引用静态文件路径
6、urls.py文件中添加路径


image.png

二、登录后台逻辑
1、提交表单中需加入:{% csrf_token %}
2、登录后进入页面判断用户登录状态:


image.png

3、views.py中对于用户名、密码的判断:


image.png

4、表单提交中的aciton要与urls.py中配置路径对应:
image.png

image.png

5、自定义登录使用账号:

(1)views.py文件添加CustomBackend类


image.png
 (2)settings.py文件中添加配置:
image.png

6、表单提交后错误,页面显示错误信息
(1)views.py文件中加入报错的msg:


image.png

(2)login.html文件中添加传递参数:


image.png

三、基于类view来实现登录
1、vews.py文件添加:


image.png

2、urls.py文件中修改:


image.png

四、结合form实现
1、在users文件夹下新建forms.py文件,并在文件中添加form类,类中字段名称要与html文件中字段的名称一致,字段属性即字段相应的校验


image.png

2、在views.py文件中引用form文件,添加form对象,用is_valid()做判断:


image.png

3、html文件中相应修改:
image.png

五、session和cookie自动登录机制
1、无状态请求


image.png

2、有状态请求


image.png

3、服务器生成session,放入浏览器本地cookie中
4、Django为每个用户登录生成session登录信息:
image.png

(1)session_key:session的id,服务器生成的一段随机字符串
(2)session_data:用户信息且加密存储
(3)expire_date:session失效时间
settings.py中有关session的配置:


image.png

六、注册功能的实现
1、添加注册页面:
(1)templates页面添加register.html文件:修改静态文件路径、修改登录注册href
(2)在views.py文件中添加RegisterView类
(3)urls.py文件中添加路径配置
2、Django中验证码插件安装:
(1)进入虚拟环境中:pip install django-simple-captcha
(2)settings.py文件INSTALLED_APPS中加入应用:'captcha'
(3)urls.py文件中加入路径:


image.png

(4)运行makemigrations、migrate
3、验证码使用
(1)添加注册页面form:users/forms.py文件中添加RegisterForm类


image.png

(2)views.py文件中RegisterView类中创建对象
image.png

(3)html文件中添加引用:
image.png

前端效果:点击可以更换图片、栏位可输入
image.png

数据库中相应表:
image.png

4、邮箱注册逻辑:
image.png

5、发送邮件实现
(1)apps目录下新建Python Package:utils,utils目录下新建文件:email_send.py
(2)settings.py文件中配置发送者
a、先查找自己邮箱的SMTP服务器地址,qq的:smtp.qq.com
b、settings.py文件添加:


image.png

(3)email_send.py文件编写发送邮件的函数
image.png

(4)views.py文件中的RegisterView中添加发送邮件调用
image.png

(5)注册验证
(6)激活实现:
a、views.py文件中的RegisterView的post方法中添加user_profile.is_active = False
b、views.py文件中加入ActiveUserView类
image.png

c、urls.py配置:
image.png
   6、邮箱注册添加逻辑判断及前端显示
   7、views.py文件中的LoginView的post方法也需要添加用户是否激活的逻辑判断
   8、views.py文件中的RegisterView的post方法需要添加判断用户邮件是否已经注册逻辑
   9、views.py文件中的ActiveUserView中添加链接验证失败的逻辑

七、找回密码功能的实现
1、添加页面:
(1)templates页面添加forgetpwd.html文件:修改静态文件路径、修改href
(2)在views.py文件中添加ForgetPwdView类
(3)urls.py文件中添加路径配置
2、添加验证码
(1)添加注册页面form:users/forms.py文件中添加ForgetForm类
(2)views.py文件中ForgetForm类中创建对象
(3)html文件中添加引用
3、ForgetForm类添加post逻辑判断及前端显示
4、添加重置密码邮件发送功能

你可能感兴趣的:(djiang+xadmin学习笔记四:用户登录注册)