Django Xadmin
一般在實際的開發當中, 除了先後端分離的項目, 還有一些先後端不分離的項目, 這樣咱們在訪問不分離的頁面的時候, 就能夠經過Django自帶的admin管理模塊來輕鬆實現後臺管理, 可是因爲你的審美要求較高咋辦呢? 自帶admin後臺實在是太難看了, 也太難用了, 因而乎Xadmin就基於Django的admin開發了一個新的後臺管理, 不只融合了admin的快速組成員管理, 還基於Bootstrap美化了界面, 還有更多圖標顯示等你來發崛css
**小知識點:**若是是先後端不分離的項目, 也是能夠借用其餘的admin客戶端, 好比Vue有一個 vue-element-admin 也十分好看python
安裝:切換到虛擬環境下
pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2
註冊app
INSTALLED_APPS = [ # ... # xamin主體模塊 'xadmin', # 渲染表格模塊 'crispy_forms', # 爲模型經過版本控制,能夠回滾數據 'reversion', ]
Xadmin數據庫遷移
xadmin:須要本身的數據庫模型類,完成數據庫遷移, 遷移以後就會多出相對應的xadmin表linux
>: python manage.py migrate
設置Xadmin路由
設置主路由替換掉admin:主urls.pygit
# xadmin的依賴 import xadmin xadmin.autodiscover() # xversion模塊自動註冊須要版本控制的 Model from xadmin.plugins import xversion xversion.register_models() urlpatterns = [ # 用Xadmin後臺替換原生的admin後臺 path(r'xadmin/', xadmin.site.urls), ]
建立超級用戶
建立超級用戶:外層luffyapi路徑終端github
>: python manage.py createsuperuser 帳號密碼設置:admin | admin
完成全局美化配置
完成xadmin全局配置:新建home/adminx.py數據庫
# home/adminx.py # xadmin全局配置 import xadmin from xadmin import views class GlobalSettings(object): """xadmin的全局配置""" site_title = "路飛學城" # 設置站點標題 site_footer = "路飛學城有限公司" # 設置站點的頁腳 menu_style = "accordion" # 設置菜單摺疊 xadmin.site.register(views.CommAdminView, GlobalSettings)
註冊相應的字段以及Xadmin
在adminx.py中註冊model:home/adminx.px
from . import models # 註冊 xadmin.site.register(models.Banner)
修改app:home的名字:xadmin頁面上的顯示效果
# home/__init__.py default_app_config = "home.apps.HomeConfig" # home/apps.py from django.apps import AppConfig class HomeConfig(AppConfig): name = 'home' verbose_name = '個人首頁'
xadmin的使用
1.須要在app
中建立adminx.py
文件django
import xadmin from repository import models from xadmin import views class UserProfileAdmin(object): # 顯示的字段名稱 list_display = ['id','name' ,'email','phone','mobile'] # 搜索時可輸入的字段內容 search_fields = ['id', 'name', 'email', 'phone'] # 點擊id可進入詳細界面進行編輯(默認的) list_display_links = ('id',) # 可編輯的列名 list_editable = ['name' ,'email','phone','mobile'] # list_filter = ['name' ,'email','phone','mobile'] # 每頁顯示多少條 list_per_page = 20 #根據id排序 ordering = ('id',) #設置只讀字段 readonly_fields = ('user_email',) #顯示本條數據的全部信息 show_detail_fields = ['asset_name'] xadmin.site.register(models.UserProfile,UserProfileAdmin)
2.數據導出 若是想要導出Excel
數據,須要安裝xlwt
。json
默認狀況下,xadmin
會提供Excel
,CSV
,XML
,json
四種格式的數據導出,能夠經過設置OptionClass
的list_export
屬性來指定使用哪些導出格式(四種格式分別用xls
,csv
,xml
,json
表示)或是將list_export
設置爲None
來禁用數據導出功能
list_export = ('xls', 'xml', 'json') list_export_fields = ('id', 'name', 'title')
3.設置全局的配置
# 全局修改,固定寫法 class GlobalSettings(object): # 修改title site_title = 'xxx後臺管理界面' # 修改footer site_footer = 'xxx的公司' # 收起菜單 menu_style = 'accordion' # 設置 models圖標 # https://v3.bootcss.com/components/ # http://www.yeahzan.com/fa/facss.html global_search_models = [models.Disk, models.Server] global_models_icon = { # Server: "glyphicon glyphicon-tree-conifer", Pool: "fa fa-cloud" models.Server: "fa fa-linux", models.Disk: "fa fa-cloud" } # 將title和footer信息進行註冊 xadmin.site.register(views.CommAdminView,GlobalSettings)
4.圖表顯示
data_charts = { "host_service_type_counts": { 'title': '部門機器使用狀況', 'x-field': "business_unit", 'y-field': ("business_unit"), 'option': { "series": {"bars": {"align": "center", "barWidth": 0.8, "show": True}}, "xaxis": {"aggregate": "count", "mode": "categories"} }, }, "host_idc_counts": { 'title': '機房統計', 'x-field': "idc", 'y-field': ("idc",), 'option': { "series": {"bars": {"align": "center", "barWidth": 0.3, "show": True}}, "xaxis": {"aggregate": "count", "mode": "categories"} } } }
5.註冊模型與對應的管理類
xadmin.site.register(models.Disk, DiskAdmin) xadmin.site.register(models.Server, ServerAdmin) xadmin.site.register(models.IDC, IDCAdmin) xadmin.site.register(models.UserProfile, UserProfileAdmin) xadmin.site.register(models.UserGroup, UserGroupAdmin)