基于Django的Admin后台如何实现定制简单监控页
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍基于Django的Admin后台如何实现定制简单监控页,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!我们使用Django的Admin二次定制一个图形化界面,首先
千家信息网最后更新 2025年01月19日基于Django的Admin后台如何实现定制简单监控页
这篇文章主要介绍基于Django的Admin后台如何实现定制简单监控页,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
我们使用Django的Admin二次定制一个图形化界面,首先我们把语言设置为中文简体.
修改: settings.pyLANGUAGE_CODE = 'zh-hans'TIME_ZONE = 'Asia/Shanghai'修改: apps.pyfrom django.apps import AppConfigclass MywebConfig(AppConfig): name = 'MyWeb' verbose_name = "服务器参数收集"
接着我们来定义models.py数据库模型,定义基本的数据查询.
from django.db import modelsfrom django.utils.html import format_htmlimport datetimeSTATUS_CHOICES = (('d', '在用设备'), ('p', '下线设备'), ('w', '损坏设备'),)# 定义主机基本信息表class HostInfoDB(models.Model): id = models.AutoField(primary_key=True) # HostAddr = models.TextField(max_length=128,verbose_name="主机地址") HostAddr = models.CharField(max_length=128, verbose_name="主机地址") HostName = models.CharField(max_length=128, verbose_name="主机名称") HostType = models.CharField(max_length=128, verbose_name="系统类型") HostPosition = models.CharField(max_length=128, verbose_name="机房位置") HostPlatform = models.CharField(max_length=128, verbose_name="所属平台") HostGroup = models.CharField(max_length=128, verbose_name="分组") HostDataTime = models.DateTimeField(verbose_name="检查日期") HostUser = models.CharField(max_length=64, verbose_name="负责人") hostStats = models.CharField(max_length=1, choices=STATUS_CHOICES, verbose_name="设备状态") def __str__(self): return self.HostName # 用于给本表指定别名,这样前端就不是英文的了 class Meta(): verbose_name = "设备清单" verbose_name_plural = "设备清单" # 设备再用状态 def Status(self): if self.hostStats == 'd': format_td = format_html('<span >在用设备</span>') elif self.hostStats == 'p': format_td = format_html('<span >下线设备</span>') elif self.hostStats == 'w': format_td = format_html('<span >损坏设备</span>') return format_td Status.short_description = "当前状态"# 指定Ping检测结果表class HostPingInfo(models.Model): id = models.AutoField(primary_key=True) HostAddr = models.CharField(max_length=128, verbose_name="主机地址") flage = models.CharField(max_length=64) class Meta(): verbose_name = "存活检测" verbose_name_plural = "存活检测" def Status(self): if self.flage == "True": ret = "已连接" color = "green" return format_html('<span >{}</span>',color,ret,) elif self.flage == "False": ret = "未连接" color = "red" return format_html('<span >{}</span>', color, ret,) Status.short_description = "状态"# 定义CPU/内存利用率数据表结构class HostCPUOrMemInfo(models.Model): id = models.AutoField(primary_key=True) HostAddr = models.CharField(max_length=128, verbose_name="主机地址") Cpu_Count = models.IntegerField() Mem_Count = models.IntegerField() class Meta(): verbose_name = "CPU内存性能" verbose_name_plural = "CPU内存性能" def Cpu_Speed(self): return format_html('<progress max="100" value="{}"></progress>',self.Cpu_Count) def Mem_Speed(self): return format_html('<progress max="100" value="{}"></progress>',self.Mem_Count) def Check(self): return format_html('<a href="/admin/MyWeb/hostdb/{}/change/" rel="external nofollow" >查看</a>',self.id) Cpu_Speed.short_description = "CPU利用率" Mem_Speed.short_description = "Mem利用率"
继续定制admin.py
并与上方的数据库视图相交互.
from django.contrib import adminfrom MyWeb.models import *# 必须继承ModelAdmin基类,才可以调整参数,HostDB则是你的表的名称@admin.register(HostInfoDB)class MyAdmin(admin.ModelAdmin): admin.site.site_title="后台管理" admin.site.site_header = "自动化监控平台" # list_display = 你需要展示的字段应该写在这里,此处是数据库中的字段 list_display = ("HostAddr","HostName","HostType","HostPosition","HostDataTime","HostPlatform","HostGroup","HostUser","Status") # search_fields = 用于添加一个搜索框,此处作为查询条件 #search_fields = ("HostAddr","HostType","Status",) # list_filter = 设置一个过滤器,此处是过滤条件 list_filter = ("HostAddr","HostGroup",) # ordering = 设置一个排序条件,此处是以id作为排序依据 ordering = ("id",) #list_per_page = 设置每页显示多少条记录,默认是100条 list_per_page = 10 #list_editable = 设置默认可编辑字段 #list_editable = ("HostName",) # date_hierarchy = 显示详细时间分层筛选 date_hierarchy = 'HostDataTime' # readonly_fields = 可以设置只读字段,就是无法修改的字段 #readonly_fields = ("hostCPU","hostMEM",)# 定义Ping检测显示字段@admin.register(HostPingInfo)class MyAdmin(admin.ModelAdmin): list_display = ("HostAddr","flage","Status")# 定义内存CPU利用率字段@admin.register(HostCPUOrMemInfo)class MyAdmin(admin.ModelAdmin): list_display = ("id","HostAddr","Cpu_Count","Cpu_Speed","Mem_Count","Mem_Speed","Check")
保存后直接执行命令,完成命令行建表操作.
python manage.py makemigrationspython manage.py migratepython manage.py createsuperuser
保存后启动,Django并访问http://127.0.0.1:8000/admin登录后我们依次看一下定制效果.
主页中的展示效果如下.
当我们需要增加自定义动作时,可以这样写,我们以HostCPUOrMemInfo
为例
# 定义内存CPU利用率字段@admin.register(HostCPUOrMemInfo)class MyAdmin(admin.ModelAdmin): list_display = ("id","HostAddr","Cpu_Count","Cpu_Speed","Mem_Count","Mem_Speed") # 添加的自定义动作,此处可执行操作 def func(self, request, queryset): # 此处可以写一些执行动作 print(self, request, queryset) func.short_description = "自定义active动作" actions = [func, ] # Action选项都是在页面上方显示 actions_on_top = True # Action选项都是在页面下方显示 actions_on_bottom = False # 是否显示选择个数 actions_selection_counter = True
以上是"基于Django的Admin后台如何实现定制简单监控页"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
设备
字段
主机
内存
利用率
数据
动作
地址
状态
检测
后台
监控
数据库
条件
下线
内容
参数
名称
命令
平台
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
计算机网络技术单招自我介绍范文
福州联豪网络技术有限公司起诉
用友服务器已启动连接失败
预防沉迷网络安全教案
安庆企业软件开发公司哪家好
p6tse支持服务器内存
软件开发工程师任职条件
无法从服务器获取表单信息
实体餐饮店的数据库
顺软件开发累吗
重庆市的网络安全接入地址
网络技术上机考试注意
宣扬网络安全的目的
支付网络技术备付金分录
深信服云服务器
丽水今橙网络技术
软件开发苦吗
数据库中表的field
服务器管理卡密码如何重置
联想服务器技术支持电话
北京如何网络技术服务产品介绍
服务器的安全证书目前无效
万方数据库用什么IE下载
监控服务器IP用什么
db2数据库无法删除6
新罗区韵介网络技术工作室
智业软件开发怎么样
oracle数据库top
网络安全系统知识
电脑服务器断开了怎么办