python工业互联网应用实战8—django-simpleui
笔者也使用过一段时间adminx组件,后来由于adminx停更,又遇到更简单的django-simpleui后,现在基本上只使用simpleui了,使用simpleui的几个好处,笔者认为排在第一位的是于原生admin的兼容性非常高,大量的原生配置基本可以直接用。adminx扩展就需要改很多地方,配置文件也是变成不一样的adminx.py。试用之后,比较喜欢simpleui思路,不知道以后功能多了写复杂了会不会也得走adminx的老路。不过adminx和simpleui等第三方组件都是可以让我们快速的把admin改造成支持主流web ui控件的方式。
1.1. 零成本迁移
安装simpleui命令:pip install django-simpleui==4.0.2,然后settings.py INSTALLED_APPS里添加simpleui即可,admin马上就能神奇的华丽转身。
...
# Application references
# https://docs.djangoproject.com/en/2.1/ref/settings/#std:setting-INSTALLED_APPS
INSTALLED_APPS = [
'simpleui',
'app',
'Task',
# Add your apps here to enable them
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
] ...
Before

After

好神奇吧!更关键的是前面的代码都兼容执行,呵呵、呵呵、呵呵。
这里笔者致敬一下'django-simpleui'原作者,兼容性是一个非常好的路子,迁移成本低就能提高迁移的效率啊。现在一个代码没改,我们的admin变成ElementUI风格了。
1.2. 集成监控画面
simpleui非常方便的支持自定义菜单的扩展,接下来我们演示如何把早期的监控画面集成到这个管理后台菜单里。
1.2.1. 监控APP迁移
VS 2019 IDE有一个很方便的操作就是直接到原来的目录下复制Collector目录,到IndDemo项目下粘贴即可,迁移也是非常的方便。
settings.py文件注册一下Collector app,然后在工程的urls.py文件里发布url即可,这里需要注意的是:由于每个app都有views.py文件,from Collector import views as Collector_views.
...
# Application references
# https://docs.djangoproject.com/en/2.1/ref/settings/#std:setting-INSTALLED_APPS
INSTALLED_APPS = [
'simpleui',
'app',
'Task',
'Collector',
# Add your apps here to enable them
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
] ...
文件urls.py代码,为了便于统一url的路径,代码稍微改了一下:path('admin/tank4C9/', Collector_views.tank4C9)。django url的发布也是非常方便。
"""
Definition of urls for IndDemo.
""" from datetime import datetime
from django.urls import path,re_path
from django.contrib import admin
from django.contrib.auth.views import LoginView, LogoutView
from app import forms, views from Task import views as Task_views
from Collector import views as Collector_views urlpatterns = [
path('', views.home, name='home'),
path('contact/', views.contact, name='contact'),
path('about/', views.about, name='about'),
path('login/',
LoginView.as_view
(
template_name='app/login.html',
authentication_form=forms.BootstrapAuthenticationForm,
extra_context=
{
'title': 'Log in',
'year' : datetime.now().year,
}
),
name='login'),
path('logout/', LogoutView.as_view(next_page='/'), name='logout'), path('admin/', admin.site.urls), path('admin/tank4C9/', Collector_views.tank4C9),
path('getTank4C9Data/', Collector_views.getTank4C9Data), ]
1.2.2. 自定义菜单
最后一个步骤就是simpleui 自定义菜单配置项了,通过这个配置项,我们能方便的添加自定义的菜单。详细请参考链接:
https://simpleui.72wo.com/docs/simpleui/QUICK.html#%E4%BE%8B%E5%AD%90
...
#simpleui 自定义菜单配置项 SIMPLEUI_CONFIG = {
'system_keep': True,
'menu_display': ['监控','任务', '授权'], # 开启排序和过滤功能, 不填此字段为默认排序和全部显示, 空列表[] 为全部不显示.
'dynamic': False, # 设置是否开启动态菜单, 默认为False. 如果开启, 则会在每次用户登陆时动态展示菜单内容
'menus': [
{
'name': '监控',
'icon': 'fa el-icon-monitor',
'models': [{
'name': '现场监控',
'url': 'tank4C9/',
'icon': 'fa el-icon-s-platform'
}]
}, {
'name': '任务',
'icon': 'far fa-bookmark',
'models': [{
'name': '任务管理',
'url': 'Task/task/',
'icon': 'far fa-file-excel'
}]
},
{
'name': '授权',
'icon': 'fa fa-shield-alt',
'models': [{
'name': '用户',
'url': 'auth/user/',
'icon': 'fa fa-user'
},{
'name': '角色',
'url': 'auth/group/',
'icon': 'fa fa-users-cog'
}]
}] }
下图就是监控界面集成好后的效果。另外使用simpleui还是实现了多tab页的主流方式,而不是原生django admin但页面浏览模式,更符合当前主流的方式。

1.3. 小结
本章我们把admin迁移到了django-simpleui,组件很好的兼容性,迁移非常简单方便就完成了,然后,完成了监控界面的集成,这样在基于django-admin就实现了一个简单的管理软件原型出现。后面我们会演示通过django-admin和django-simpleui逐步的完成和丰富这个原型的功能。
python工业互联网应用实战8—django-simpleui的更多相关文章
- python工业互联网应用实战3—Django Admin列表
Django Admin笔者使用下来可以说是Django框架的开发利器,业务model构建完成后,我们就能快速的构建一个增删查改的后台管理框架.对于大量的企业管理业务开发来说,可以快速的构建一个可发布 ...
- python工业互联网应用实战5—Django Admin 编辑界面和操作
1.1. 编辑界面 默认任务的编辑界面,对于model属性包含"choices"会自动显示下来列表供选择,"datetime"数据类型也默认提供时间选择组件,如 ...
- python工业互联网应用实战2—从需求开始
前言:随着国家工业2025战略的推进,工业互联网发展将会提速,将迎来一个新的发展时期,越来越多的企业开始逐步的把产线自动化,去年年底投产的小米亦庄的智能工厂就是一个热议的新闻.小米/华为智能工厂只能说 ...
- python工业互联网应用实战17—前后端分离模式之django template vs jquery3
上一章节我们完成了"CRUD"的后面3个功能点,新增由于改动较大我们专门增加本章来阐述,主要是完成技术栈切换后,会发现模板的代码判断过多,逻辑过于复杂.对未来存在的扩展和维护友好性 ...
- python工业互联网应用实战1—SQL与ORM
从sql到ORM应该说也是编程体系逐步演化的结果,通过类和对象更好的组织开个过程中遇到的各种业务问题,面向对象的解耦和内聚作为一套有效的方法论,对于复杂的企业应用而言确实能够解决实践过程中很多问题. ...
- python工业互联网应用实战3—模型层构建
本章开始我们正式进入到实战项目开发过程,如何从需求分析获得的实体数据转到模型设计中来,变成Django项目中得模型层.当然,第一步还是在VS2019 IDE环境重创建一个工程项目,本文我们把工程名称命 ...
- python工业互联网应用实战7—业务层
本章我们演示代码是如何"进化"的,实战的企业日常开发过程中,系统功能总伴随着业务的不断增加,早期简单的代码慢慢的越来越复杂,敏捷编程中的"禅"--简单设计.快速 ...
- python工业互联网应用实战11—客户端UI
这个章节我们将演示用户端界面的开发,当前演示界面还是采用先实现基本功能再逐步完善的"敏捷"模式.首先聚焦在功能逻辑方面实现普通用户与系统的交互,普通用户通过url能查看到当前任务的 ...
- python工业互联网应用实战13—基于selenium的功能测试
本章节我们再来说说测试,单元测试和功能测试.单元测试我们在数据验证章节简单提过了,本章我们进一步如何用单元测试来测试view的功能代码:同时,也涉及一下基于selenium的功能测试做法.笔者过去的项 ...
随机推荐
- 二进制安装kubernetes(三) kube-controller-manager组件安装
Controller Manager简介 详细介绍请参考链接:Kubernetes组件之kube-controller-manager Controller Manager作为集群内部的管理控制中心, ...
- 基于OpenCV全景拼接(Python)SIFT/SURF
一.实验内容: 利用sift算法,实现全景拼接算法,将给定的两幅图片拼接为一幅. 二.实验环境: 主机配置: CPU :intel core i5-7300 2.50GHZ RAM :8.0GB 运行 ...
- 左神算法第五节课:认识哈希函数和哈希表,设计RandomPool结构,布隆过滤器,一致性哈希,岛问题,并查集结构
认识哈希函数和哈希表 MD5Hash值的返回范围:0~9+a~f,是16位,故范围是0~16^16(2^64)-1, [Hash函数],又叫散列函数: Hash的性质: 1) 输入域无穷大: 2) ...
- codeforces 8C(非原创)
C. Looking for Order time limit per test 4 seconds memory limit per test 512 megabytes input standar ...
- 康托展开:对全排列的HASH和还原,判断搜索中的某个排列是否出现过
题目:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=2297 前置技能:(千万注意是 ...
- taro alipay
taro alipay 开发指南 https://nervjs.github.io/taro/docs/GETTING-STARTED.html#支付宝小程序 { "name": ...
- svg editor
svg editor https://c.runoob.com/more/svgeditor/ xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访 ...
- C-Sharp 调用命令行
https://stackoverflow.com/questions/1469764/run-command-prompt-commands 带控制台 string strCmdText = &qu ...
- js 脏检测
参考 基础知识 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- 科普NGK公链生态板块旗下的BGV、SPC、NGK、USDN四大币种
众所周知,NGK公链所有数据上链.公开透明,NGK公链生态板块目前主要分为四个板块---BGV.SPC.NGK.USDN四大币种,笔者以时间上倒叙手法来一一科普. 首先,是2021新年刚推出的SPC侧 ...