權限認證


權限認證

權限概念

"""
在實際開發中,項目中都有后台運營站點,運營站點里面會存在多個管理員,
那么不同的管理員會具備不同的任務和能力,那么要實現這樣的管理員功能,那么就需要了解權限機制了.
在開發中, 一般現在流行的權限機制有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 = '用戶中心'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM