基于Django的Admin后台如何实现定制简单监控页
发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,这篇文章主要介绍基于Django的Admin后台如何实现定制简单监控页,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!我们使用Django的Admin二次定制一个图形化界面,首先
千家信息网最后更新 2025年11月15日基于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安全错误
数据库的锁怎样保障安全
centos日志服务器
济宁远之航软件开发
mysql查看数据库表备注
网络安全 两会保电新闻稿
软件开发可以往哪方面入手
基于内容的网络安全
软件开发暑作会被模仿吗
广西金融教学软件开发
淄博采购软件开发公司
数据库常用dml语句
广州募美互联网科技有限公司
php怎么连接数据库
通信网络安全防护管理及安全
专业承接各种软件开发
网络安全的课件
服务器的管理软件
饭圈乱象绘画网络安全手抄报
国内软件开发语言使用情况
mp的服务器
密云区网络技术市场报价
网络技术毕业论文提纲
amd服务器cpu有哪些
为什么要规范化数据库
苹果笔记本电脑推荐软件开发
湖南众邦互联网科技有限公司
阿帕奇服务器下载
宁波镇海惠普机架式服务器
java将集合写入数据库
汇丰软件开发入职
sql数据库课程设计食堂