Django 中使用权限认证
权限认证
权限概念
"""
在实际开发中,项目中都有后台运营站点,运营站点里面会存在多个管理员,
那么不同的管理员会具备不同的任务和能力,那么要实现这样的管理员功能,那么就需要了解权限机制了.
在开发中, 一般现在流行的权限机制有2种: RBAC[基于角色(分组)的权限认证]和Auth认证[授权认证机制]
我们使用的django框架内部集成的Auth模块实际上就是基于RBAC开发出来的权限认证机制.
在开发中,实现RBAC权限机制,一般有2种不同的设计方式:分别是3表和5表
基于角色的权限访问控制(Role-Based Access Control)
"""
xamdin可视化添加测试权限的用户
"""
1.登录xadmin后台管理
2.新增账号:zero/zero1234
3.修改为在职状态
4.添加组group:销售部 - 权限操作轮播图
5.分配zero到销售部
"""
基于Django的权限系统
新建user应用
"""
1.终端前往luffyapi/apps所在目录
>: python ../../manage.py startapp user
2.settings/dev.py中注册user
INSTALLED_APPS = [
# ...
'user'
]
3.分发路由
1)主路由urls.py
from django.urls import include
urlpatterns = [
# ...
path('user/', include('user.urls')),
]
2)子路由
from django.urls import path, re_path
from . import views
urlpatterns = [
]
"""
自定义user表:user.models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
mobile = models.CharField(verbose_name="手机号码", max_length=15, unique=True)
avatar = models.ImageField(upload_to='avatar', verbose_name='用户头像', null=True, blank=True, help_text="头像图片的大小规格:256x256,或者对应的比例的图片")
class Meta:
db_table = 'luffy_user'
verbose_name = '用户'
verbose_name_plural = verbose_name
修改auth认证的user表:settings/dev.py
# 这里是固定写法:模块.继承AbstractUser的自定义User表
AUTH_USER_MODEL = 'user.User'
数据库迁移:因为之前已经完成数据库迁移,auth认证的用户表指向系统,所以要重构数据库
"""
1) 在项目根目录下的终端
>: python manage.py makemigrations
>: python manage.py migrate
2) 出现冲突
3)清空迁移记录:以下目录的所有迁移记录文件
django/contrib/admin/migrations
django/contrib/auth/migrations
xadmin/migrations
reversion/migrations
user/migrations
home/migrations
4)清空数据库所有表
5)重新数据库迁移
>: python manage.py makemigrations
>: python manage.py migrate
"""
新建管理员用户:大luffyapi文件夹
>: python manage.py createsuperuser
格式化xadmin显示表信息
# 1.user.__init__.py
default_app_config = "user.apps.UserConfig"
#2.user.apps.py
from django.apps import AppConfig
class UserConfig(AppConfig):
name = 'user'
verbose_name = '用户中心'
Django 中使用权限认证的更多相关文章
- Django中用户权限模块
Django中用户权限模块 1 auth模块 auth模块是Django提供的标准权限管理系统,可以提供用户身份认证, 用户组和权限管理. auth可以和admin模块配合使用, 快速建立网站的管理系 ...
- Django 中的用户认证
Django 自带一个用户认证系统,这个系统处理用户帐户.组.权限和基于 cookie 的 会话.本文说明这个系统是如何工作的. 概览 认证系统由以下部分组成: 用户 权限:控制用户进否可以执行某项任 ...
- Django中的权限系统
Django中已经为我们设置好了基本的权限系统,在定义好model同步数据库后,在每个库下面都会有一张 'auth_permission' 表.该表里面记录了每条权限的描述(name字段,can do ...
- springboot中实现权限认证的两个框架
web开发安全框架 提供认证和授权功能! 一.SpringSecurity 1.导入依赖 <dependency> <groupId>org.springframework.b ...
- django中的权限控制(form增删改)
Django默认提供了权限控制,但只能对使用了其自带的登录认证的用户进行权限控制,说白了就是只能对存储在auth_user表中的用户进行权限控制,但不能对未登录过的用户进行权限控制.但如果通过集成LD ...
- ubuntu 14.04中Elasticsearch 2.3 中 Nginx 权限认证
前言:本文实现了nginx简单保护elasticsearch,类似的保护也可以采用elasticsearch 官方插件shield 一.准备密码 1.确认htpasswd是否已经安装 which ht ...
- Codeigniter-实现权限认证
两种方法 钩子函数 集成核心Controller 方法一,钩子函数: 一直没找到CI的权限认证扩展,以前好像找到过一个老外的扩展,不过不怎么好用,现在记不清了,后来仿着jsp firter的方式用CI ...
- **[权限控制] 利用CI钩子实现权限认证
http://codeigniter.org.cn/forums/thread-10877-1-1.html 一直没找到CI的权限认证扩展,以前好像找到过一个老外的扩展,不过不怎么好用,现在记不清了, ...
- 【Shiro】Apache Shiro架构之权限认证(Authorization)
Shiro系列文章: [Shiro]Apache Shiro架构之身份认证(Authentication) [Shiro]Apache Shiro架构之集成web [Shiro]Apache Shir ...
随机推荐
- easyui datagrid里的toobar按钮隐藏、显示、禁用等方式的实现
easyui datagrid里的toobar按钮隐藏.显示.禁用等方式的实现 //隐藏第一个按钮 $('div.datagrid-toolbar a').eq(0).hide(); //隐藏第一条分 ...
- 使用jsPlumb插件实现动态连线功能
这周去看了两天的羽毛球亚锦赛,工作有提前晚上加班做一些,但是技术文章却拉下了. 这段时间一直在寻找可以实现前端元素动态连线的功能,找了好几个库,考虑过用d3或者原生svg和canvas来实现,最后和同 ...
- 开启Hadoop和Spark的学习之路
Hadoop Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储. Hadoop实现了一个 ...
- eNSP下配置Trunk接口实现跨交换机传递数据
当Trunk端口发送数据帧的时候,当所发送帧的VLAN ID与端口的PVID不同是,检查是否允许该VLAN通过,若允许的话,直接透传,不允许就直接丢弃:当该帧的VLAN ID与端口的PVID相同时,则 ...
- [转帖]什么是UWB?UWB有什么用?
什么是UWB?UWB有什么用? https://www.sohu.com/a/224891573_531173 小米碰传 就是 UWB吧? 2018-03-05 17:02 UWB在早期被用来应用在近 ...
- 抓包curl解析
目录 背景 code 背景 抓包工具charles抓取的请求curl,是这样: curl -H ':method: POST' -H ':path: /client.action?functionId ...
- win10安装Ubuntu,用Xshell连接
一.安装Ubuntu 安装Ubuntu,安装过程就不详细说了,我是从微软商店下载的Ubuntu安装,没有用VMware,想用Xshell连接Ubuntu,中间一直出问题,现在解决,总结一下. 二.配置 ...
- CTeX 更改字体(软件)
CTeX默认显示字体太小了,写起来看着费眼睛.有没有办法更改字体呢? 更改字体方法:(图片是默认字体) 未完 ...... 点击访问原文(进入后根据右侧标签,快速定位到本文) </b
- 09 单例设计模式、__new__函数
设计模式 设计模式是前任工作的总结和提炼,通常,被人们广泛流传的设计模式都是针对某一特定问题的成熟的解决方案. 使用设计模式是为了可重用代码.让代码更容易的被他人理解.保证代码的可靠性. 单例设计模式 ...
- 从C++到Qt(舍弃IDE或qmake、cmake等工具的束缚,尝试通过几个例子)
Qt 是 C++ 的库,Qt 在 ansi C++ 的基础上进行了一点扩展. 但国内似乎比较浮躁,学Qt的很多连基本的C++如何编译似乎都不太清楚.本文舍弃IDE或qmake.cmake等工具的束缚, ...