xadmin后台页面定制和添加服务器监控组件

本文介绍如何使用XAdmin自定义服务器监控页面,包括修改源码实现特定功能、整合pydash监控组件并将其移植到现有Django项目的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

xadmin定制

项目需要添加服务器监控页面,碍于xadmin不是很好自定义页面,之前写过插件,太麻烦了,还是直接改源码
1226359-20180330152556576-107545244.png

原理其实很简单,因为xadmin的处理流程和django类似,都是通过拦截URL,然后封装数据,再在页面解析.
它的牛逼之处在于只利用几个模板html就可以处理几乎所有的后台操作,因为它映射的模块,方法等信息都拼接在url中,
它只需要知道url就知道用户要处理的模块以及操作(增删改查)
所以我们也可以利用这个特性来控制页面输出我们想要的内容.
思路:

  • 在views/base.py中添加控制(是否需要跳转,跳转的url)
  • 在templates/xadmin/base_site.html 中根据上一步传过来的值控制显示内容(用iframe)
  • 自己编写处理该url的页面和view.py,然后iframe中就会显示该页面

1226359-20180330155104519-1069311591.png

1226359-20180330155203650-230771980.png

1226359-20180330155240061-112432370.png

1226359-20180330155308433-438343971.png

监控组件

我用的是pydash
github:https://github.com/k3oni/pydash

怎么把pydash移植到自己的项目呢?

因为我们的项目也是用的django,只需要把核心的几个文件复制到项目中,还是很简单的
1226359-20180330161058003-1129581055.png

主要的文件在上面截图中,还有css,js,font,img等根据需要添加

注意settings.py只需要把:

TIME_JS_REFRESH = 30000
TIME_JS_REFRESH_LONG = 120000
TIME_JS_REFRESH_NET = 2000

VERSION = "1.4.6"

添加到自己项目中的settings.py中即可

复制urls.py中部分到自己项目urls.py

                       url(r'^main/$', 'main.views.getall', name='main'),
                       url(r'^info/uptime/$', 'usage.views.uptime', name='uptime'),
                       url(r'^info/memory/$', 'usage.views.memusage', name='memusage'),
                       url(r'^info/cpuusage/$', 'usage.views.cpuusage', name='cpuusage'),
                       url(r'^info/getdisk/$', 'usage.views.getdisk', name='getdisk'),
                       url(r'^info/getusers/$', 'usage.views.getusers', name='getusers'),
                       url(r'^info/getips/$', 'usage.views.getips', name='getips'),
                       url(r'^info/gettraffic/$', 'usage.views.gettraffic', name='gettraffic'),
                       url(r'^info/proc/$', 'usage.views.getproc', name='getproc'),
                       url(r'^info/getdiskio/$', 'usage.views.getdiskio', name='getdiskio'),
                       url(r'^info/loadaverage/$', 'usage.views.loadaverage', name='loadaverage'),
                       url(r'^info/platform/([\w\-\.]+)/$', 'usage.views.platform', name='platform'),
                       url(r'^info/getcpus/([\w\-\.]+)/$', 'usage.views.getcpus', name='getcpus'),
                       url(r'^info/getnetstat/$', 'usage.views.getnetstat', name='getnetstat'))

pydash/main/views.py和pydash/usage/views.py中删除登录,登出功能,
删除所有方法上

@login_required(login_url='/login/')

应为用户认证xadmin已经搞定了

转载于:https://www.cnblogs.com/lanqie/p/8675533.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值