simpleui的使用

simpleui的使用

使用权限管理会快速搭建基于后台管理,使用django 的admin后台管理直接可以使用,但是样式不好看,我们可以使用simpleui基于django 的admin 做美化。

simpleui: 基于vue写的,界面更好看
现阶段一般前后端分离的项目比较多,多使用django+vue来做带权限的前后端分离项目快速开发框架

django-vue-admin 是其中做的比较好公司用的比较多的空闲时可以研究。
能力够了也可以自己写

1.安装

pip3.8 install django-simpleui 

使用方法官方文档

https://simpleui.72wo.com/docs/simpleui/doc.html#%E5%AE%89%E8%A3%85

注册app

INSTALLED_APPS = [
    'simpleui',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01.apps.App01Config',
    'rest_framework'
]

表注册admin.py

# 注册,这些表才能显示在django管理后台中
from .models import Book,Publish,Author,AuthorDetail
admin.site.register(Book)
admin.site.register(Publish)
admin.site.register(Author)
admin.site.register(AuthorDetail)

apps.py

from django.apps import AppConfig


class App01Config(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'app01'
    # 修改菜单名
    verbose_name = '图书管理系统'

修改英文表名为中文名

添加Meta
class Book(models.Model):
    name = models.CharField(max_length=32)
    price = models.DecimalField(max_digits=5, decimal_places=2)
    publish_time = models.DateField()

    publish = models.ForeignKey(to='Publish', on_delete=models.CASCADE)
    authors = models.ManyToManyField(to='Author')
	 def __str__(self):
        return self.name
    
    class Meta:
        verbose_name = '图书'
        verbose_name_plural = verbose_name

添加展示字段admin.py

from django.contrib import admin

# Register your models here.
# 注册,这些表才能显示在django管理后台中
from .models import Book,Publish,Author,AuthorDetail
# admin.site.register(Book)
admin.site.register(Publish)
admin.site.register(Author)
admin.site.register(AuthorDetail)

@admin.register(Book) # 使用这种方法就不能使用上面那种注册
class BookAdmin(admin.ModelAdmin):
    list_display = ('id','name','price','publish_time','publish')

增加按钮,按钮样式,弹窗

    # 增加自定义按钮
    actions = ['custom_button']

    def custom_button(self, request, queryset):
        print(queryset)
	 # 添加按钮弹窗
    custom_button.confirm = '删库跑路?'
    # 按钮显示名称
    custom_button.short_description = '测试'

    # 图标,参考element-ui icon与https://fontawesome.com
    custom_button.icon = 'fas fa-audio-description'
    # # 指定element-ui的按钮类型,参考https://element.eleme.cn/#/zh-CN/component/button
    custom_button.type = 'danger'
    # # 给按钮追加自定义的颜色
    custom_button.style = 'color:black;'

增加菜单放在配置文件中

import time
SIMPLEUI_CONFIG = {
    'system_keep': False,
    'menu_display': ['图书管理', '权限认证', '待开发'],      # 开启排序和过滤功能, 不填此字段为默认排序和全部显示, 空列表[] 为全部不显示.
    'dynamic': True,    # 设置是否开启动态菜单, 默认为False. 如果开启, 则会在每次用户登陆时动态展示菜单内容
    'menus': [{
        'name': '图书管理',
        'app':'app01',
        'icon': 'fas fa-code',
        'models': [{
                    'name': '图书',
                    'icon': 'fa fa-user',
                    'url': 'app01/book/'},
            {
                'name': '出版社',
                'icon': 'fa fa-user',
                'url': 'app01/publish/'}
        ]

    }, {
        'app': 'auth',
        'name': '权限认证',
        'icon': 'fas fa-user-shield',
        # 二级菜单
        'models': [{
            'name': '用户',
            'icon': 'fa fa-user',
            'url': 'auth/user/'
        }]
    }, {
        # 自2021.02.01+ 支持多级菜单,models 为子菜单名
        'name': '待开发',
        'icon': 'fa fa-file',
      	# 二级菜单
        'models': [{
            'name': 'Baidu',
            'icon': 'far fa-surprise',
            # 第三级菜单 ,
            'models': [
                {
                  'name': '爱奇艺',
                  'url': 'https://www.iqiyi.com/dianshiju/'
                  # 第四级就不支持了,element只支持了3级
                }, {
                    'name': '百度问答',
                    'icon': 'far fa-surprise',
                    'url': 'https://zhidao.baidu.com/'
                }
            ]
        }, {
            'name': '大屏展示',
            # 注意如果想要插入一个页面,需要配置路由,写html,写方法返回html
            'url': '/show/',
            'icon': 'fab fa-github'
        }]
    }, {
        'name': '动态菜单测试' ,
        'icon': 'fa fa-desktop',
        'models': [{
            'name': time.time(),
            'url': 'http://baidu.com',
            'icon': 'far fa-surprise'
        }]
    }]
}


其它配置项

# 6 其它配置项
	SIMPLEUI_LOGIN_PARTICLES = False  #登录页面动态效果
    SIMPLEUI_LOGO = 'https://avatars2.githubusercontent.com/u/13655483?s=60&v=4'#图标替换
    SIMPLEUI_HOME_INFO = False  #首页右侧github提示,服务器信息
    SIMPLEUI_HOME_QUICK = False #快捷操作
    SIMPLEUI_HOME_ACTION = False # 动作

字段名显示中文

新增,查看修改展示中文,在表模型的字段上加:verbose_name='显示的字段名',help_text='提示'
app名字中文:apps.py---》verbose_name = '图书管理系统'

大屏展示

getee上下载一个大屏展示zip,找到想用的复制项目下的文件到我们项目里的static目录下,复制项目下index.hrml到我们项目下的templates文件下,写个方法返回页面
配置static
CTRL+R全局替换
"可以修改html展示的一些数据"
posted @ 2023-02-11 21:40  李阿鸡  阅读(1016)  评论(0编辑  收藏  举报
Title