博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django cookie,session,auth
阅读量:6487 次
发布时间:2019-06-24

本文共 1979 字,大约阅读时间需要 6 分钟。

一.最完美的auth

auth_user 是用来存储的用户注册的username,password

auth 首先需要引入模块

from django.contrib import auth   用户认证的前提是:使用django自带用户表auth_user 插入数据,在manage.py下插入 createsuperuser 通过添加username,password 来实现创建auth_user 登录数据表 1.登录逻辑
1 def login(request): 2      3     if request.method == "GET": 4         return render(request, "login.html") 5     else: 6         #1.接收输入用户名和密码 7         user = request.POST.get("user") 8         pwd = request.POST.get("pwd") 9         print(user, pwd)10         #2. 通过auth.authenticate判断输入的是否正确11         #这里有三次变化{
12 # 1.将用户名,密码输入在user_name进行验证,成功后生成系统自带的随机session_id13 # 2.将输入的用户名和密码写入14 # 3.给浏览器返回session_id15 #}16 17 user_obj = auth.authenticate(username=user, password=pwd)18 #4,如果输入成功,返回登录页面19 if user_obj:20 #5.将user_obj赋值给user21 auth.login(request, user_obj)22 return redirect("/books/")23 else:24 return redirect("/login/")
登录

2.注销,本质上是flush()操作,清楚session_id

1 def logout(request):2     auth.logout(request)3     return redirect("/login/")
注销

3.注册

1 from django.contrib.auth.models import User 2 #1.注册前需要引入模块 3  4 def reg(request): 5     if request.method == "GET": 6         return render(request, "reg.html") 7     else: 8         user = request.POST.get("user") 9         pwd = request.POST.get("pwd")10         #2.User的为什么不用create,因为用create会生成明文,不安全11         #这个创建在user_auth里12         User.objects.create_user(username=user, password=pwd)13         return redirect("/books/")
注册

4.修改密码

1 def set_password(request): 2     if request.method == "GET": 3         return render(request, "set_password.html") 4     else: 5         #1.验证用户名是否存在 6         user = User.objects.get(username=request.user.username) 7         pwd = request.POST.get("pwd") 8         #2修改密码 9         user.set_password(raw_password=pwd)10         user.save()11         return redirect("/books/")
修改密码

 

转载于:https://www.cnblogs.com/zhangqing979797/p/9885819.html

你可能感兴趣的文章
控制ASP.NET Web API 调用频率
查看>>
系统诊断小技巧(7):利用Iptables进行排查和诊断的简易方案
查看>>
IPv6的渗透率比人们想象的要快速?
查看>>
针对Windows零日漏洞,微软是不是太过“无作为”了?
查看>>
推特解散商业团队 终止开发“Buy”按钮
查看>>
英特尔SSD:17年将专注于3D NAND和PCIe
查看>>
python (3):wxPython打包app,报错
查看>>
给网站更换服务器需要注意什么?
查看>>
成长型企业ERP系统实施的八大准则
查看>>
nginx重启脚本
查看>>
理解Linux系统/etc/init.d目录和/etc/rc.local脚本
查看>>
代码整洁之道
查看>>
svm 预测标签的概率输出
查看>>
ActiveMQ(25):优化与建议
查看>>
使用Intelij Idea经过的坑
查看>>
微信 token
查看>>
【原创】JAVA通过过滤器防止脚本注入
查看>>
马哥linux第8周作业
查看>>
gnu autotools
查看>>
在AIX上增加文件系统空间
查看>>