auth模块的介绍

一、django中自带模块auth的使用

  • 1、导包

    from django.contrib import auth
    
  • 2、默认使用auth_user表来存储用户数据

    # 默认用户表是位置
    from django.contrib.auth.models import User
    
    mysql> show tables;
    +----------------------------+
    | Tables_in_django_rest01    |
    +----------------------------+
    | auth_group                 |
    | auth_group_permissions     |
    | auth_permission            |
    | auth_user                  |
    | auth_user_groups           |
    | auth_user_user_permissions |
    | django_admin_log           |
    | django_content_type        |
    | django_migrations          |
    | django_session             |
    +----------------------------+
    10 rows in set (0.00 sec)
    

二、常用的方法

  • 1、authenticate()用来校验用户名及密码

    from django.contrib.auth import authenticate, login, logout
    # 如果校验成功就返回当前用户,否则就返回None
    user = authenticate(username='username', password='password')
    
  • 2、login(HttpRequest, user)用户用户登录,使用这个登录方式会生成相关的session

  • 3、logout(request)退出操作,清除相关的session

  • 4、is_authenticated()用来判断当前请求是否通过认证

    def my_view(request):
      if not request.user.is_authenticated():
        return redirect('%s?next=%s' % (settings.LOGIN_URL, request.path))
    
  • 5、login_requierd()必须登录的装饰器

    from django.contrib.auth.decorators import login_required
    @login_required
    def my_view(request):
        pass
    

    若用户没有登录,则会跳转到django默认的 登录URL '/accounts/login/ ' 并传递当前访问url的绝对路径 (登陆成功后,会重定向到该路径)。如果需要自定义登录的URL,则需要在settings.py文件中通过LOGIN_URL进行修改。

    LOGIN_URL = '/login/'  # 这里配置成你项目登录页面的路由
    
  • 6、create_user()创建普通用户的

    from django.contrib.auth.models import User
    user = User.objects.create_user(username='用户名',password='密码',email='邮箱',...)
    
  • 7、create_superuser()创建超级用户

  • 8、check_password(password)检查密码是否正确(用户登录)

    user.check_password('密码')
    
  • 9、set_password(password)设置密码(用于注册及修改密码)

results matching ""

    No results matching ""