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展示的一些数据"