xadmin后台頁面定制和添加服務器監控組件


xadmin定制

項目需要添加服務器監控頁面,礙於xadmin不是很好自定義頁面,之前寫過插件,太麻煩了,還是直接改源碼

原理其實很簡單,因為xadmin的處理流程和django類似,都是通過攔截URL,然后封裝數據,再在頁面解析.
它的牛逼之處在於只利用幾個模板html就可以處理幾乎所有的后台操作,因為它映射的模塊,方法等信息都拼接在url中,
它只需要知道url就知道用戶要處理的模塊以及操作(增刪改查)
所以我們也可以利用這個特性來控制頁面輸出我們想要的內容.
思路:

  • 在views/base.py中添加控制(是否需要跳轉,跳轉的url)
  • 在templates/xadmin/base_site.html 中根據上一步傳過來的值控制顯示內容(用iframe)
  • 自己編寫處理該url的頁面和view.py,然后iframe中就會顯示該頁面

監控組件

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

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

因為我們的項目也是用的django,只需要把核心的幾個文件復制到項目中,還是很簡單的

主要的文件在上面截圖中,還有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已經搞定了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM