返回顶部
首页 > 资讯 > 后端开发 > Python >如何使用Django默认的Auth权限管理系统
  • 801
分享到

如何使用Django默认的Auth权限管理系统

DjangoAuth权限管理系统Django权限管理系统 2023-02-13 12:02:52 801人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录1.Django默认已经提供了认证系统Auth模块。2.DjanGo用户模型3.自定义User对象1.Django默认已经提供了认证系统Auth模块。 认证系统包含: 用户管理权

1.Django默认已经提供了认证系统Auth模块。

认证系统包含:

  • 用户管理
  • 权限
  • 用户组
  • 密码哈希系统
  • 用户登录或内容显示的表单和视图
  • 一个可插拔的后台系统 admin

Django默认用户的认证机制依赖Session机制,我们在项目中将引入Jwt认证机制,将用户的身份凭据存放在Token中,然后对接Django的认证系统,帮助我们来实现:

  • 用户的数据模型
  • 用户密码的加密与验证
  • 用户的权限系统

auth存在的位置 External Libraries\site-packages\django\contrib\..其中包括auth模块和admin模块.

2.Django用户模型

Django认证系统中提供了用户模型类User保存用户的数据,模型保存位置:D:\anaconda\Lib\site-packages\django\contrib\auth\models.py,默认的User包含以下常见的基本字段:

字段名字段描述
username必选。150个字符以内。 用户名可能包含字母数字,_@+ .-个字符。
first_name可选(blank=True)。 少于等于30个字符。
last_name可选(blank=True)。 少于等于30个字符。
email可选(blank=True)。 邮箱地址。
passWord必选。 密码的哈希加密串。 (Django 不保存原始密码)。 原始密码可以无限长而且可以包含任意字符。
groupsGroup 之间的多对多关系。
user_permissionsPermission 之间的多对多关系。
is_staff布尔值。 设置用户是否可以访问Admin 站点。
is_active布尔值。 指示用户的账号是否激活。 它不是用来控制用户是否能够登录,而是描述一种帐号的使用状态。
is_superuser是否是超级用户。超级用户具有所有权限。
last_login用户最后一次登录的时间。
date_joined账户创建的时间。 当账号创建时,默认设置为当前的date/time。

常用方法:

  • set_password(raw_password)

设置用户的密码为给定的原始字符串,并负责密码的。 不会保存User 对象。当Noneraw_password 时,密码将设置为一个不可用的密码。

  • check_password(raw_password)

如果给定的raw_password是用户的真实密码,则返回True,可以在校验用户密码时使用。

管理器方法:

管理器方法即可以通过User.objects. 进行调用的方法。

  • create_user(username, email=None, password=None, **extra_fields)

创建、保存并返回一个User对象。

  • create_superuser(username, email, password, **extra_fields)

create_user() 相同,但是设置is_staffis_superuserTrue

3.自定义User对象

因为系统默认自带的user对象很多属性和功能并不是我自己需要的,所以需要我们自己重新定义一个user对象.

第一步:创建一个user app

python manage.py startapp user

创建自定义user对象models.py

from django.db import models
from django.contrib.auth.models import AbstractUser

# Create your models here.
class user(AbstractUser):
    # 声明自定义user对象
    mobile=models.CharField(max_length=11,unique=True,verbose_name="手机号码")
    avatar=models.ImageField(upload_to="avatar",verbose_name="用户头像")

    class Mata:
        db_table="user"
        verbose_name="用户信息"
        verbose_name_plural=verbose_name

第二步:配置相关信息

进入主app下面的setting文件中

注册userapp

在这里插入图片描述

注册自定义模型

在这里插入图片描述

第三步:执行数据迁移

注意事项:如果是在第一次数据迁移之后,猜设置的AUTH_USER_MODEL自定义模型则会报错,解决方法如下:

  • 先把现有的数据库导出备份,然后清掉数据库中所有的数据表。
  • 开发者创建的所有子应用下面的migrations目录下除了__init__.py以外的所有迁移文件,只要涉及到用户的,一律删除
  • 把django.contrib.admin.migrations目录下除了__init__.py以外的所有迁移文件,全部删除。
  • 把django.contrib.auth.migrations目录下除了__init__.py以外的所有迁移文件,全部删除。
  • 把reversion.migrations目录下除了__init__.py以外的所有迁移文件,全部删除。
  • 把xadmin.migrations目录下除了__init__.py以外的所有迁移文件,全部删除。
  • 接下来,执行数据迁移,回顾第0步中的数据,以后如果要修改用户相关数据,不需要重复本次操作,直接数据迁移即可。

删除表

在这里插入图片描述

删除user.migrations目录下除了__init__.py以外的所有迁移文件,只要涉及到用户的,一律删除

在这里插入图片描述

django.contrib.admin.migrations,django.contrib.auth.migrations,reversion.migrations,xadmin.migrations目录下除了__init__.py以外的所有迁移文件,全部删除

在这里插入图片描述

* 执行数据迁移
在terminal中执行:

Python manage.py makemigrations
python manage.py migrate

到此这篇关于如何使用Django默认的Auth权限管理系统的文章就介绍到这了,更多相关Django Auth权限管理系统内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 如何使用Django默认的Auth权限管理系统

本文链接: https://lsjlt.com/news/195823.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何使用Django默认的Auth权限管理系统
    目录1.Django默认已经提供了认证系统Auth模块。2.Django用户模型3.自定义User对象1.Django默认已经提供了认证系统Auth模块。 认证系统包含: 用户管理权...
    99+
    2023-02-13
    Django Auth权限管理系统 Django 权限管理系统
  • Django权限系统auth模块用法解读
    目录认证系统auth auth模块User对象User新建用户认证用户修改密码登录退出登录只允许登录的用户访问GroupPermission检查用户权限管理用户权限自定义权...
    99+
    2023-05-12
    Django权限系统 Django auth模块 Django权限系统auth模块
  • 如何恢复系统文件的默认权限?
    无法修改保存Windows文件夹里的文件,这是很多Win7/Win8用户会碰到的问题,一般临时性的解决方法是把文件复制到非系统目录下,修改保存后再粘贴回去;当然也有一劳永逸的解决方法,获取该文件的所有权限(操作步骤这里有...
    99+
    2023-05-26
    一键恢复系统 系统文件 默认 权限
  • Linux系统文件的默认权限和特殊权限
    默认权限 umask [root@CentOS7 data]# touch file1 ; ll file1 -rw-r--r--. 1 root root 0 Oct 9 13:55 file1 [root@Cen...
    99+
    2022-06-04
    linux 默认权限 linux 特殊权限
  • Django用户认证系统(三)组与权限
    原文:https://www.cnblogs.com/linxiyue/p/4060817.html Django的权限系统很简单,它可以赋予users或groups中的users以权限。 Django admin后台就使用了该权限系统,...
    99+
    2023-01-30
    权限 用户 系统
  • Django中auth模块用户认证如何使用
    本文小编为大家详细介绍“Django中auth模块用户认证如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Django中auth模块用户认证如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。auth模...
    99+
    2023-07-05
  • Django如何实现RBAC权限管理
    目录Django RBAC权限管理概述流程图总结Django RBAC权限管理 概述 RBAC(Role-Based Access Control,基于角色的访问控制),通过角色绑定...
    99+
    2022-12-20
    Django RBAC权限管理 Django RBAC RBAC权限管理
  • Java如何实现权限管理系统
    这篇文章主要介绍了Java如何实现权限管理系统,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。springboot+mybatis使用面向切面编程(AOP)实现的权限管理系统。...
    99+
    2023-06-22
  • 怎么用bat批处理恢复c盘系统默认权限
    这篇文章主要介绍“怎么用bat批处理恢复c盘系统默认权限”,在日常操作中,相信很多人在怎么用bat批处理恢复c盘系统默认权限问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用bat批处理恢复c盘系统默认权限...
    99+
    2023-06-08
  • Django中session进行权限管理的使用
    目录1.urls.py2.login/models.py3.views.login和login.html4.views.index4.views.index5.views.logou...
    99+
    2024-04-02
  • 怎样恢复windows系统文件的默认权限
    本篇文章为大家展示了怎样恢复windows系统文件的默认权限,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。无法修改保存Windows文件夹里的文件,这是很多Win7/Win8用户会碰到的问题,一般临...
    99+
    2023-06-14
  • win10系统管理员权限如何获得
    这期内容当中小编将会给大家带来有关win10系统管理员权限如何获得,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Win10系统中的管理员权限在很多地方都用得到,但是很多朋友不知道怎么获得这个权限,下面小编...
    99+
    2023-06-27
  • nodejs中如何搭建express权限管理系统
    这篇文章主要介绍nodejs中如何搭建express权限管理系统,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!权限管理,是管理系统中的常见组件。通常需要定义资源,把资源调配给用户,通...
    99+
    2024-04-02
  • 如何在FreeBSD系统上进行用户和权限管理
    在FreeBSD系统上进行用户和权限管理通常涉及以下几个步骤: 创建用户账户: 使用adduser命令创建新用户账户,例如:s...
    99+
    2024-04-02
  • 如何在OpenBSD系统上设置用户和权限管理
    在OpenBSD系统上设置用户和权限管理可以通过以下步骤实现: 创建新用户: 使用useradd命令创建新用户。例如,要创建一个名...
    99+
    2024-04-02
  • Prometheus系统如何实现多租户和权限管理
    Prometheus系统可以通过以下方式实现多租户和权限管理: 使用Prometheus的基于角色的访问控制(RBAC)功能:P...
    99+
    2024-03-04
    Prometheus
  • Springboot如何实现认证和动态权限管理
    今天小编给大家分享一下Springboot如何实现认证和动态权限管理的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。知识点补充...
    99+
    2023-06-19
  • 后台管理系统的权限及vue处理权限实例分析
    这篇文章主要介绍了后台管理系统的权限及vue处理权限实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇后台管理系统的权限及vue处理权限实例分析文章都会有所收获,下面我们一...
    99+
    2024-04-02
  • 使用elementuiadmin去掉默认mock权限控制的设置
    目录elementuiadmin去掉默认mock权限控制的设置vue-elementui-admin的动态权限控制总结elementuiadmin去掉默认mock权限控制的设置 一般...
    99+
    2023-05-17
    elementuiadmin elementuiadmin mock 默认mock权限控制设置
  • 如何在linux系统中使用UMASK权限
    这篇文章将为大家详细讲解有关如何在linux系统中使用UMASK权限,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。  umask一般是用在你初始创建一个目录或者文件的时候赋予他们的权限。  ...
    99+
    2023-06-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作