当前位置:   article > 正文

Django 用户认证系统_django 默认需要哪些表

django 默认需要哪些表


参考视频:https://ke.qq.com/course/320021

一、用户认证系统

Django内置一个用户认证系统,使用auth模块实现。

auth模块提供了登录、注册、效验、修改密码、注销、验证用户是否登录等功能。
在这里插入图片描述

1.1.Django默认创建的数据库表

• auth_user :用户表
• auth_user_groups :用户所属组的表
• auth_user_user_permissions :用户权限表
• auth_group :用户组表
• auth_group_permissions :用户组权限表
• auth_permission :存放全部权限的表,其他的表的权限都是从此表中外键连接过去的

• django_session :保存HTTP状态
• django_migrations :数据库迁移记录

二、auth模块

登录Django后台管理系统,创建devops用户,用于后面的测试
在这里插入图片描述
在这里插入图片描述

2.1.login()

登录成功,跳转到首页

views.py:

from django.contrib import auth
def login(request):
    if request.method == "GET":
        return render(request, 'login.html')
    elif request.method == "POST":
        # 获取前端登录的用户名和密码
        username = request.POST.get('username', None)
        password = request.POST.get('password', None)
        # 对用户身份验证
        user = auth.authenticate(username=username, password=password)  #验证通过返回用户对象,验证失败返回None
        if user:
            auth.login(request, user)   # 将request与用户对象(包含session)传给login()函数
            return redirect(index)      # 重定向到函数名,这里是首页
        else:
            msg = "用户名或密码输入错误"
            return render(request, 'login.html', {"msg": msg})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

login.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录页面</title>
</head>
<body>
    <h1>欢迎访问管理系统</h1>
    <form action="" method="post">
        用户名: <input type="text", name="username"><br>    <!--输入的用户名保存到username变量,传回后端-->
        密码: <input type="text", name="password"><br>
        <button type="submit">登录</button><br>
    </form>
    <span style="color: red">{{ msg }}</span>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

2.2.logout()

views.py:

from django.contrib.auth import login,logout
def logout(request):
    auth.logout(request)    # 清除当前用户的session信息
    return redirect(login)
  • 1
  • 2
  • 3
  • 4

2.3.login_required装饰器

login_required装饰器:判断用户是否登录,如果没有登录引导至登录页面,登录成功后跳转到目的页面。

views.py:

from django.contrib.auth.decorators import login_required

@login_required()
def index(request):
    return render(request, 'index.html')
  • 1
  • 2
  • 3
  • 4
  • 5

index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
    <h1>欢迎访问首页</h1>
    <a href="/myldp/logout/">退出</a>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在settings.py文件设置没有登录默认跳转页面:

LOGIN_URL = '/myldp/login/'
  • 1

在这里插入图片描述

2.4.效果图

在这里插入图片描述
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/71683
推荐阅读
相关标签
  

闽ICP备14008679号