基于Django的Admin后台如何实现定制简单监控页
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍基于Django的Admin后台如何实现定制简单监控页,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!我们使用Django的Admin二次定制一个图形化界面,首先
千家信息网最后更新 2026年11月03日基于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安全错误
数据库的锁怎样保障安全
深圳市人人互联网科技有限公司
互联网科技英文
互联网科技视频
贷财互联网科技
广西互联网科技公司
互联网科技小额贷款
深圳艾佳互联网科技
互联网科技美容
长亮科技 互联网金融
多迪互联网科技有限公司
互联网 科技服务平台
云创客互联网科技公司
须眉科技是互联网公司吗
华服互联网科技官网
银川新华互联网科技学校联系电话
互联网数据科技专业
艺电能源互联网科技有限公司招聘
米泉互联网科技专业怎么样
互联网科技创新方面的资料
互联网 科技节活动 微视频大赛
中智农互联网科技
互联网下的科技发展
关于新基建和互联网科技
上海卓越科技 互联网
青海省互联网新科技
互联网科技商业
杭州壁岐互联网科技有限公司
全球科技与互联网公司市值变化
互联网科技新闻
瑞安市蟠桃会互联网科技有限公司