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)