使用Django自带的后台管理系统进行数据库管理的实例

这篇具有很好参考价值的文章主要介绍了使用Django自带的后台管理系统进行数据库管理的实例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Django自带的后台管理系统主要用来对数据库进行操作和管理。它是Django框架的一个强大功能,可以让你快速创建一个管理界面,用于管理你的应用程序的数据模型。

使用Django后台管理系统,你可以轻松地进行以下操作:

  1. 数据库管理:你可以查看、添加、编辑和删除数据库中的记录,而无需编写自定义的管理界面或数据库查询语句。

  2. 模型管理:Django后台管理系统会自动检测你在应用程序中定义的模型,并为每个模型创建相应的管理界面。这样,你就可以直接在后台管理界面对模型进行操作。

  3. 用户权限管理:Django后台管理系统支持用户认证和权限控制,你可以通过定义用户组和权限,限制特定用户对数据的访问和操作。

  4. 自定义管理页面:尽管Django后台管理系统提供了很多默认功能,但你也可以根据需要自定义管理页面,添加自定义的功能和视图。

总体而言,Django后台管理系统是一个强大的工具,使得对数据库进行操作和管理变得简单而高效,这使得开发者可以更专注于业务逻辑和功能开发,而无需为了管理界面而花费大量时间和精力。

在本文中,我们在Django中创建与商品分类、商品信息有关的数据表模型,并利用Django自带的后台管理系统对商品分类、商品信息的数据表进行管理。

01-新建一个名为“good_info”的Project

命令如下:

CD E:\Python_project\P_001\myshop-test
E:
django-admin startproject good_info

02-新建两个应用

执行下面条命令依次创建两个应用:

CD E:\Python_project\P_001\myshop-test\good_info\
E:
python manage.py startapp goods
python manage.py startapp users

上面的两个应用,主要的就是goods,我们会在goods的models.py中写入商品分类和商品信息的数据库类模型。
但由于商品信息中有用户的信息,所以还需要有users模型。
使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite

03-在settings.py中对两个应用进行注册

在settings.py中进行注册的代码如下:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'users',
    'goods',
]

04-编写两个应用的数据库模型类

04-01-users的模型创建及代码详解

打开文件:E:\Python_project\P_001\myshop-test\myshop_background\apps\users\apps.py
写入以下代码:

from datetime import datetime
from django.db import models
from django.contrib.auth.models import AbstractUser, Group, Permission


class MyUser(AbstractUser):
    SEX = (
        (0, '男'),
        (1, '女'),
    )
    LEVEL = (
        (1, '寂寞卡会员'),
        (2, '钻石卡会员'),
        (3, '金卡会员'),
        (4, '银卡会员'),
    )
    STATUS = (
        (0, '正常'),
        (1, '异常'),
    )

    groups = models.ManyToManyField(
        Group,
        verbose_name='groups',
        blank=True,
        help_text='The groups this user belongs to.',
        related_name='user_groups'  # 设置不同的 related_name
    )
    user_permissions = models.ManyToManyField(
        Permission,
        verbose_name='user permissions',
        blank=True,
        help_text='Specific permissions for this user.',
        related_name='user_permissions'  # 设置不同的 related_name
    )

    truename = models.CharField('真实姓名', blank=True, max_length=50)
    mobile = models.CharField('手机号码', max_length=11, default="")
    sex = models.IntegerField(default=0, choices=SEX)
    birthday = models.DateField(blank=True, null=True)
    user_img = models.ImageField("头像", upload_to="user_img", default="")
    level = models.IntegerField(default=4, choices=LEVEL)
    status = models.IntegerField(default=0, choices=STATUS)
    create_time = models.DateTimeField(default=datetime.now, verbose_name='创建时间')
    update_time = models.DateTimeField(default=datetime.now, verbose_name="更新时间")

    def __str__(self):
        return self.username

    class Meta(AbstractUser.Meta):
        permissions = (
            ['check_myuser', '审核用户信息'],
        )

①关于字段groups和字段user_permissions的说明。
字段groups和字段user_permissions实际上是没有作用的,那为什么要定义呢?原因请见博文:https://blog.csdn.net/wenhao_ir/article/details/131773627

②问:能不能介绍下代码from django.contrib.auth.models import AbstractUser中涉及到的类AbstractUser?
答:在Django框架中,django.contrib.auth.models模块提供了用于身份验证和授权的相关功能。其中,AbstractUser类是Django默认的用户模型(user model)的抽象基类。详情请参见链接:https://blog.csdn.net/wenhao_ir/article/details/131594115

③代码 truename=models.CharField(‘真实姓名’,blank=True,max_length=50) 的blank=True,是什么意思?
在Django模型中,blank=True是一个参数,用于指示模型字段是否可以为空。当blank=True时,该字段在表单验证过程中可以为空,不会引发验证错误。如果blank=False,则该字段在表单验证过程中是必需的,不能为空。

在代码中,truename是一个CharField,它表示一个字符型字段,用于存储真实姓名。由于指定了blank=True,这意味着在创建或更新该模型实例时,可以将truename字段留空。这对于某些情况下真实姓名是可选的场景很有用。但需要注意的是,即使blank=True,数据库中存储的字段值仍然可以是空字符串,而不是NULL值。

④代码 mobile=models.CharField(‘手机号码’,max_length=11,default=“”)中的 default=“” 是什么意思?
答:default=""models.CharField的一个参数,用于指定字段的默认值。

default=""表示当创建新的模型实例时,如果没有为mobile字段提供具体的值,那么该字段将默认为空字符串。

在数据库中,如果没有为该字段提供值,它将被存储为空字符串,而不是NULL值。这意味着在查询和检索数据时,如果mobile字段没有被显式地赋值,它将返回空字符串作为默认值。

通过设置默认值,可以确保即使没有为该字段提供值,模型实例的mobile字段始终有一个默认的空字符串值。这在某些情况下可能是有用的,例如当手机号码是可选的字段时,可以将其默认为空字符串。

注意:如果在代码mobile=models.CharField('手机号码',max_length=11)中不指定default参数或将其设置为default=None,则在创建新的模型实例时,如果没有为mobile字段提供具体的值,该字段将默认为NULL值。

⑤语句 sex = models.IntegerField(default=0,choices=SEX) 的理解:
这个代码中的choices=SEX定义了一个选项列表,其中每个选项都由一个值和对应的显示标签组成。在这个例子中,SEX是一个包含元组的元组,每个元组有两个元素,第一个是存储的值,第二个是显示的标签。

在数据库中,sex字段将使用整数存储,而不是字符串。当你在创建或更新对象时,可以使用这些选项中的任何一个值来表示性别。数据库中存储的是相应的整数值(0代表男,1代表女),但是在界面上或其他需要显示的地方,你可以使用元组中的显示标签(‘男’和’女’)来表示。

也就是说如果我写入一个值,这个值是字符串’男’,那么写入数据库的是整数0哈。

⑥语句 user_img=models.ImageField(“头像”,upload_to=“user_img”,default=“”) 的 upload_to=“user_img” 是什么意思?
答:在Django中,上传路径可以在模型字段的定义中通过upload_to参数设置,也可以通过Django的配置文件进行全局设置。

  1. 模型字段中的设置:
    在定义模型字段时,可以使用upload_to参数来指定上传路径。例如:

    from django.db import models
    
    class MyModel(models.Model):
        image = models.ImageField(upload_to='my_upload_path/')
    

    上述代码中,upload_to参数设置为'my_upload_path/',表示上传的文件将保存在MEDIA_ROOT/my_upload_path/路径下,其中MEDIA_ROOT是在Django的配置文件中设置的媒体文件根路径。

  2. 全局配置文件中的设置:
    Django还提供了一个全局配置文件settings.py,可以在其中设置默认的上传路径。在配置文件中,可以使用MEDIA_ROOTMEDIA_URL两个设置来定义上传文件的根路径和对应的URL。例如:

    # settings.py
    
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
    MEDIA_URL = '/media/'
    

    上述配置中,MEDIA_ROOT指定了媒体文件的根路径为BASE_DIR/mediaMEDIA_URL指定了该路径对应的URL为/media/。在模型字段中不指定upload_to参数时,文件将被保存在MEDIA_ROOT设置的路径下。关于BASE_DIR的详细介绍,请参考我的另一篇博文:https://blog.csdn.net/wenhao_ir/article/details/131598936

需要注意的是,在使用MEDIA_ROOTMEDIA_URL进行设置时,确保在Django的URL配置中包含了相应的URL映射,以便可以正确地访问上传的文件。

⑦内部类Meta是什么东西?
关于这个问题的答案,请参见我的另一篇博文 https://blog.csdn.net/wenhao_ir/article/details/131600645

04-02-goods的模型创建及代码详解

04-02-1-拷贝common文件夹

把下面的common文件夹拷贝到根目录 E:\Python_project\P_001\myshop-test\good_info 中。
https://pan.baidu.com/s/115vpHu68sR3vDJqvBHuFUg?pwd=g9ow
使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite
在 common 目录下有文件base_model.py:
使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite
文件base_model.py的内容如下:

from django.db import models


class BaseModel(models.Model):
    """抽象基类"""
    create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
    update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间")

    class Meta:
        # 指定抽象基类
        abstract = True

注意:在这个抽象基类中定义了字段“create_time”和“update_time ”。

04-02-2-代码写入模型文件 goods\models.py

打开文件:E:\Python_project\P_001\myshop-test\good_info\goods\models.py
定入下面的代码:

from django.db import models
from datetime import datetime

from users.models import MyUser
from common.base_model import BaseModel


class GoodsCategory(BaseModel):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=50, verbose_name='分类名称', default='')
    parent = models.ForeignKey("self", null=True, blank=True, verbose_name="父类", on_delete=models.DO_NOTHING, related_name="sub_cat")
    is_nav = models.BooleanField(default=False, verbose_name='是否显示在导航栏')
    sort = models.IntegerField(verbose_name='排序')

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = '商品分类'
        verbose_name_plural = '商品分类'
        db_table = 'd_goods_category'  # 在数据库中的表名


class Goods(models.Model):
    STATUS = (
        (0, '正常'),
        (1, '下架'),
    )
    name = models.CharField(max_length=50, verbose_name='商品名称', default='')
    category = models.ForeignKey(GoodsCategory, blank=True, null=True, verbose_name='商品分类', on_delete=models.DO_NOTHING)
    market_price = models.DecimalField(max_digits=8, default=0, decimal_places=2, verbose_name='市场价格')
    price = models.DecimalField(max_digits=8, decimal_places=2, default=0, verbose_name='实际价格')
    unit = models.CharField(max_length=10, verbose_name='计量单位', blank=True, null=True)
    click_num = models.IntegerField(default=0, verbose_name="点击数")
    amount = models.IntegerField(default=0, verbose_name="销售量")
    stock_num = models.IntegerField(default=0, verbose_name="库存数")
    fav_num = models.IntegerField(default=0, verbose_name="收藏数")
    goods_desc = models.CharField(max_length=200, verbose_name='商品详情', default='',)
    status = models.IntegerField(default=0, choices=STATUS)
    is_recommend = models.BooleanField(default=False, verbose_name="是否推荐")
    user = models.ForeignKey(MyUser, blank=True, null=True, verbose_name="用户", on_delete=models.DO_NOTHING)
    createDate = models.DateTimeField(default=datetime.now, verbose_name='创建时间')

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = '商品信息'
        verbose_name_plural = '商品信息'
        db_table = 'd_goods'  # 在数据库中的表名

下面这句代码的理解请参考博文 https://blog.csdn.net/wenhao_ir/article/details/131708665

parent = models.ForeignKey("self", null=True, blank=True, verbose_name="父类", on_delete=models.DO_NOTHING, related_name="sub_cat")

05-创建数据库

数据库名:goodtest01
数据库用户名:goodtest01
数据库密码:aa123456
使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite

06-配置setting.py文件中的数据库信息

打开文件:E:\Python_project\P_001\myshop-test\good_info\good_info\settings.py
写入下面的数据库配置信息:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'goodtest01',
        'USER': 'goodtest01',
        'PASSWORD': 'aa123456',
        'HOST': 'localhost',
        'PORT': '3306',
        # 取消外键约束,否则多对多模型迁移报django.db.utils.IntegrityError: (1215, 'Cannot add foreign key constraint')
        'OPTIONS': {
            "init_command": "SET foreign_key_checks = 0;",
            'charset': 'utf8'
        },
    }
}

使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite

07-创建模型迁移和执行模型迁移命令

首先请把数据库打开。
首先请把数据库打开。
首先请把数据库打开。

然后执行下面的命令。

CD E:\Python_project\P_001\myshop-test\good_info\
E:
manage.py makemigrations
manage.py migrate

使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite

E:\Python_project\P_001\myshop-test\good_info>manage.py makemigrations
Migrations for 'goods':
  goods\migrations\0001_initial.py
    - Create model GoodsCategory
    - Create model Goods
  goods\migrations\0002_goods_user.py
    - Add field user to goods
Migrations for 'users':
  users\migrations\0001_initial.py
    - Create model MyUser

使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite

08-创建后台管理员用户

运行下面的命令:

CD E:\Python_project\P_001\myshop-test\good_info\
E:
manage.py createsuperuser

使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite
从上面的过程来看,如果不指定管理员的用户名,则默认为:administrator,同时还可以输入管理员的邮箱。
我在上面设的密码为:bb123456

09-启动后台web服务并测试是否能登陆管理员帐户

运行下面这三条命令启动:

CD E:\Python_project\P_001\myshop-test\good_info\
E:
python manage.py runserver

使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite
访问下面这个URL进入Django自带的后台登陆页面:
http://127.0.0.1:8000/admin/
使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite
输入用户名(administrator)和密码(bb123456),登陆:
使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite

10-配置Admin后台管理系统

10-1-配置 goods/app.py 文件

把 goods/app.py 文件原来的代码:

from django.apps import AppConfig


class GoodsConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'goods'

改成下面这样:

from django.apps import AppConfig


class GoodsConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'goods'
    verbose_name = "商品管理"

即加上代码verbose_name = "商品管理",这样“商品管理”会显示在Admin后台管理系统中的左侧菜单导航中。

10-2-设置 goods/__init__.py 文件

特别注意:我在2023-12-03的时候实测,其实这一步可以不做。
特别注意:我在2023-12-03的时候实测,其实这一步可以不做。
特别注意:我在2023-12-03的时候实测,其实这一步可以不做。

goods/__init__.py 文件中写入下面的代码:

from .apps import GoodsConfig
default_app_config = 'goods.GoodsConfig'

关于语句:from .apps import GoodsConfig的解释如下:
在Django中,.apps是指从当前包(package)【也可以理解为当前目录】中导入一个名为apps的模块(module)或子包(sub-package)。在上面的代码中,from .apps import GoodsConfig的作用是从当前目录的apps模块中导入类 GoodsConfig 。

.apps用于从当前包中导入GoodsConfig

具体来说,Django的应用(app)通常是一个包含apps.py文件的Python包。apps.py文件用于定义Django应用的配置类,其中包含应用的元数据信息,例如应用名称、显示名称等。通常情况下,Django会自动生成apps模块,你可以通过导入它来访问应用的配置类。

假设你的项目结构如下:

my_project/
    my_app/
        __init__.py
        apps.py
        models.py
        views.py

apps.py中,可能会定义类似如下的应用配置类:

# my_project/my_app/apps.py

from django.apps import AppConfig

class GoodsConfig(AppConfig):
    name = 'my_app'
    verbose_name = 'My Goods Application'

现在,如果你想在其他文件中引用GoodsConfig这个配置类,可以使用相对导入的方式,如下所示:

# 任何其他.py文件

from .apps import GoodsConfig

# 使用GoodsConfig进行配置或其它操作

在这里,.apps表示当前包(my_app)中的apps模块,然后从中导入了GoodsConfig类。注意,apps这个名称是由Django约定的,用于表示应用的配置模块。

总之,.apps在这里是一个相对导入的语法,用于引用当前包中的apps模块,并从中导入GoodsConfig类。

关于语句:default_app_config = 'goods.GoodsConfig'的解释如下:
在Django中,default_app_config变量用于指定一个应用的默认配置类。当一个Django应用被加载时,它将查找该应用的apps.py文件,并在其中寻找继承自AppConfig的配置类(如果存在的话)。然后,Django将使用该配置类来配置应用的行为和元数据。

然而,有时候你可能希望在应用的apps.py文件中定义配置类,但不希望Django自动使用它作为默认的应用配置。这种情况下,你可以手动指定默认的配置类,而不是让Django自动识别。

在你提供的代码中,default_app_config = 'goods.GoodsConfig'的作用是明确指定应用goods使用GoodsConfig作为其默认配置类。这样做的好处是,即使Django自动检测到其他配置类,它也会优先选择使用GoodsConfig作为该应用的配置类。

举例来说,假设你的应用goods有如下结构:

goods/
    __init__.py
    apps.py
    models.py
    ...

apps.py中定义了GoodsConfig配置类:

# goods/apps.py

from django.apps import AppConfig

class GoodsConfig(AppConfig):
    name = 'goods'
    verbose_name = 'Goods Application'

然后在goods/__init__.py中添加了default_app_config变量:

# goods/__init__.py

from .apps import GoodsConfig
default_app_config = 'goods.GoodsConfig'

通过这样的设置,你可以确保GoodsConfig会被作为goods应用的默认配置类。即使Django自动发现了其他配置类,也会忽略它们并使用GoodsConfig

需要注意的是,default_app_config变量只有在应用被加载之前设置才有效。在Django启动时,它会读取应用的__init__.py文件,找到default_app_config变量并应用它指定的配置类。因此,如果你在运行Django之前修改了该文件,确保default_app_config的设置在Django加载应用之前生效。

10-3-配置admin.py文件

在文件:E:\Python_project\P_001\myshop-test\good_info\goods\admin.py 中写入下面的代码:

from django.contrib import admin
from goods.models import *


@admin.register(GoodsCategory)
class GoodsCategoryAdmin(admin.ModelAdmin):
    admin.site.site_title = "我的商城-标签页标题"
    admin.site.site_header = "我的商城-页面标题"
    admin.site.index_title = "商城平台管理-后台管理主页标题"
    # 设置列表中显示的字段
    list_display = ['name', 'sort', 'create_time']  # 字段create_time定义在 from common.base_model import BaseModel 中
    # 搜索
    search_fields = ['name', 'parent_id']
    # 过滤
    list_filter = ['name', 'parent_id']
    # 设置每页现实的数据量
    list_per_page = 10
    # 设置排序
    ordering = ['sort']


@admin.register(Goods)
class GoodsAdmin(admin.ModelAdmin):
    # 设置列表中显示的字段
    list_display = ['name', 'market_price', 'price']

代码@admin.register(GoodsCategory)是什么意思?
答:有两个作用。
①在Django中,@admin.register() 是一个装饰器(decorator),用于注册数据库模型类(Model)到后台管理界面。具体来说,@admin.register(GoodsCategory) 这行代码的作用是将 GoodsCategory 数据库模型类注册到Django后台管理界面,从而允许您在后台对该模型进行管理和操作。

一旦通过 @admin.register() 注册了一个数据库模型类,Django会自动创建一个对应的管理页面,该页面允许您查看、添加、修改和删除模型的实例。这样,您就可以在后台管理界面轻松地管理您的数据库中的 GoodsCategory 数据。

②在上面的代码中,GoodsCategoryAdmin 类被用作 GoodsCategory 模型的管理类,它继承自 admin.ModelAdmin。通过在该类中定义不同的属性和方法,您可以自定义后台管理界面的外观和行为,例如定义要显示的字段、搜索和过滤选项、排序规则等等。

11-重新启动 Web服务及效果展示

CTRL+C结束掉之前启动的Web服务,然后重新启动:

CD E:\Python_project\P_001\myshop-test\good_info\
E:
python manage.py runserver

访问后台管理:
http://127.0.0.1:8000/admin/
用户名(administrator)和密码(bb123456)
使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite
使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite
把上面的这幅截图记为“Home图”
点击“Home图”中的“商品信息”,界面如下:
使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite
点击“Home图”中的“商品分类”,界面如下:
使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite
点击“Home图”中的“商品信息”右边的“+ Add”,界面如下:
使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite
点击“Home图”中的“商品分类”右边的“+ Add”,界面如下:
使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite

12-写入数据测试

12-1-创建一条“商品分类”数据

使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite
使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite
使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite

12-2-创建一条“商品信息”数据

使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite
使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite
使用Django自带的后台管理系统进行数据库管理的实例,Django,数据库,django,sqlite

13-整个Project的压缩包下载链接

整个Project的压缩包下载链接:
https://pan.baidu.com/s/1DwfwH79cE6SB67hZqa-Q3w?pwd=hyrd 文章来源地址https://www.toymoban.com/news/detail-615358.html

到了这里,关于使用Django自带的后台管理系统进行数据库管理的实例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • TinyVue - 华为云 OpenTiny 出品的企业级前端 UI 组件库,免费开源,同时支持 Vue2 / Vue3,自带 TinyPro 中后台管理系统

    华为最新发布的前端 UI 组件库,支持 PC 和移动端,自带了 admin 后台系统,完成度很高,web 项目开发又多一个选择。 关于 OpenTiny 和 TinyVue 在上个月结束的华为开发者大会2023上,官方正式进行发布了 OpenTiny,这是华为云出品的企业级设计体系统,一套前端 UI 组件库。适配

    2024年02月11日
    浏览(63)
  • Layui Vue - 优雅经典、免费开源的 Vue 3 桌面端 UI 组件库,沿用 layui 设计规范,开箱即用,自带 Pear Admin Next 后台管理系统

    经典的 layui 没有停止维护,还出了 Vue 3 版本的,依旧好用,分享给大家。 关于 Layui Vue 在介绍 Layui Vue 之前有必要先介绍一下 Layui。Layui 是一套经典的开源的 Web UI 组件库,作者是大名鼎鼎的前端大神贤心。Layui 采用轻量级模块化规范,遵循原生态的 HTML / CSS / JavaScript 开发模

    2024年02月08日
    浏览(40)
  • Django(10)-项目实战-对发布会管理系统进行测试并获取测试覆盖率

    在发布会签到系统中使用django开发了发布会签到系统, 本文对该系统进行测试。 django.test 是Django框架中的一个模块,提供了用于编写和运行测试的工具和类。 django.test 模块包含了一些用于测试的类和函数,如: TestCase :这是一个基类,用于编写Django测试用例。继承自 unit

    2024年02月10日
    浏览(47)
  • 前端使用elementui开发后台管理系统的常用功能(持续更新)

    前言:本次的文章完全是自己开发中遇到的一些问题,经过不断的修改终于完成的一些功能,当个快捷的查看手册吧~ 功能描述:数据使用的若依的字典,或者是自定义数据,可以点击每个选项进行选择,取消选择,也可以在已选择进行清除和单个删除 使用: @selection-change

    2024年02月09日
    浏览(47)
  • Naive UI Admin后台管理系统的组件BasicTable使用指南

    Naive Ui Admin 是一个基于 Vue3.0、 Vite、 Naive UI、 TypeScript 的中后台解决方案,它使用了最新的前端技术栈,并提炼了典型的业务模型,页面,包括二次封装组件、动态菜单、权限校验、粒子化权限控制等功能,它可以帮助你快速搭建企业级中后台项目, 相信不管是从新技术使用

    2024年02月09日
    浏览(100)
  • 基于SpringBoot 2+Layui实现的管理后台系统源码+数据库+安装使用说明

    一个基于SpringBoot 2 的管理后台系统,包含了用户管理,组织机构管理,角色管理,功能点管理,菜单管理,权限分配,数据权限分配,代码生成等功能 相比其他开源的后台系统,SpringBoot-Plus 具有一定的复杂度 系统基于Spring Boot2.1技术,前端采用了Layui2.4。数据库以MySQL/Oracle

    2024年02月04日
    浏览(55)
  • 后台管理系统权限管理详解

    简述权限管理: 你可以在后台通过一个 tree 控件或者其它展现形式给每一个页面动态配置权限,之后将这份路由表存储到后端。当用户登录后得到roles,前端根据roles去向后端请求可访问的路由表,从而动态生成可访问页面,之后就是 router.addRoutes 动态挂载到router 上,你会发

    2024年02月05日
    浏览(38)
  • Vue3+Vite+Pinia+Naive后台管理系统搭建之四:Naive UI 组件库的安装和使用

    前言 如果对 vue3 的语法不熟悉的,可以移步 Vue3.0 基础入门Vue3.0 基础入门快速入门。 UI 组件请参考官网:Naive Ui 官网 为什么选择 naive ui 不继续用 element ui,因为尤大大推荐,可以尝试下,而且 naive ui 更贴近 vue3 的语法,当然易上手还是element ui 好一点。 github 开源库:Vue

    2024年02月07日
    浏览(77)
  • 若依框架后台管理系统-忘记后台管理密码-忘记密码重置方法

    1. 无盐老版 1.1、生成密码密文 1.2、替换数据库中密码 2. 加盐新版 (今天 2022-03-16) 2.1、生成密码密文 2.2、替换数据库中密码 补充说明 参考资料 管理后台忘记密码两步解决: 找到工具类: com.ruoyi.common.utils.SecurityUtils 添加 main 方法:打印出密码密文 大家好,我是笨笨,笨

    2024年02月15日
    浏览(43)
  • 微信小程序考勤签到管理系统+后台管理系统

    《微信小程序考勤签到管理系统+后台管理系统》该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等 本系统包含微信小程序做的考勤前台和Java做的后台管理系统: 微信小程序——考勤前台涉及技术: WXML 和 WXSS、JavaScript Java——考勤后台涉及技术

    2024年02月09日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包