使用Django的auth模块内置的密码加密方法

使用auth模块实现自定义用户表的密码密文

获取加密密码的方法

from django.contrib.auth.hashers import make_password
    # 设置密码
    res = make_password('lqz12345')  # 该方法就是把明文密码转换为密文密码

设置密码

from django.contrib.auth.hashers import make_password
    # 设置密码
    res = make_password('lqz12345')
    print(res)  # pbkdf2_sha256$150000$lOUMB9geU7A8$9x3OH5Rdzk6IFaZR1iLoBbMXOJPUdWPnFtjoLFZ4GfI=
    # 然后再把res存入数据库就行了

修改密码

from django.contrib.auth.hashers import make_password
    # 修改密码
    res = make_password('新密码')
    print(res)  # pbkdf2_sha256$150000$Lg2kBPl0AqG5$NGG6yNB6Ow/WrFr7NGInZsD+nWti6GXYqTCQUvZDdsQ=
    # 然后再把新密码res存入数据库就行了

校验密码

from django.contrib.auth.hashers import make_password
    # 获取密文密码
    res = make_password('lqz12345')
    # 校验密码
    user = user.objects.filter(username=username,password=res).first()
    # 然后再判断user是否存在就可以了
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面是基于 Django auth 模块的登录和注册模块的示例代码: ## 注册模块 ### 1. 创建注册页面 在 templates 目录下创建一个 register.html 文件,该文件包含一个表单,用户可以输入用户名和密码: ```html <!DOCTYPE html> <html> <head> <title>注册</title> </head> <body> <h2>注册</h2> <form method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit">注册</button> </form> </body> </html> ``` ### 2. 创建注册视图 在 views.py 文件中创建一个 register 视图,该视图处理用户提交的注册表单,并将新用户保存到数据库中: ```python from django.shortcuts import render, redirect from django.contrib.auth.forms import UserCreationForm def register(request): if request.method == 'POST': form = UserCreationForm(request.POST) if form.is_valid(): form.save() return redirect('login') else: form = UserCreationForm() return render(request, 'register.html', {'form': form}) ``` 在上面的代码中,我们使用 Django 自带的 UserCreationForm 表单处理用户提交的注册表单。如果表单数据有效,我们将表单数据保存到数据库中,并将用户重定向到登录页面。 ## 登录模块 ### 1. 创建登录页面 在 templates 目录下创建一个 login.html 文件,该文件包含一个表单,用户可以输入用户名和密码: ```html <!DOCTYPE html> <html> <head> <title>登录</title> </head> <body> <h2>登录</h2> <form method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit">登录</button> </form> </body> </html> ``` ### 2. 创建登录视图 在 views.py 文件中创建一个 login 视图,该视图处理用户提交的登录表单,并验证用户名和密码是否匹配: ```python from django.shortcuts import render, redirect from django.contrib.auth.forms import AuthenticationForm from django.contrib.auth import authenticate, login def login_view(request): if request.method == 'POST': form = AuthenticationForm(data=request.POST) if form.is_valid(): username = form.cleaned_data.get('username') password = form.cleaned_data.get('password') user = authenticate(username=username, password=password) if user is not None: login(request, user) return redirect('home') else: form = AuthenticationForm() return render(request, 'login.html', {'form': form}) ``` 在上面的代码中,我们使用 Django 自带的 AuthenticationForm 表单处理用户提交的登录表单。如果表单数据有效,我们使用 authenticate 函数验证用户名和密码是否匹配。如果匹配成功,我们使用 login 函数将用户登录到系统中,并将用户重定向到网站首页。 ### 3. 创建网站首页 在 urls.py 文件中创建一个网站首页的路由: ```python from django.urls import path from .views import register, login_view, home urlpatterns = [ path('register/', register, name='register'), path('login/', login_view, name='login'), path('', home, name='home'), ] ``` 在 views.py 文件中创建一个 home 视图,该视图返回网站首页的 HTML 页面: ```python from django.shortcuts import render def home(request): return render(request, 'home.html') ``` 在 templates 目录下创建一个 home.html 文件,该文件包含网站首页的 HTML 代码。 这就是基于 Django auth 模块的登录和注册模块的示例代码。希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值