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已經搞定了
