Django Xadmin

通常在实际的开发当中, 除了前后端分离的项目, 还有一些前后端不分离的项目, 这样我们在访问不分离的页面的时候, 就可以通过Django自带的admin管理模块来轻松实现后台管理, 但是由于你的审美要求较高咋办呢? 自带admin后台实在是太难看了, 也太难用了, 于是乎Xadmin就基于Django的admin开发了一个新的后台管理, 不仅融合了admin的快速组成员管理, 还基于Bootstrap美化了界面, 还有更多图标显示等你来发崛

Django Xadmin中文文档

Djanog Xadmin Github传送门

小知识点:如果是前后端不分离的项目, 也是可以借用其他的admin客户端, 比如Vue有一个 vue-element-admin 也十分好看

安装:切换到虚拟环境下

  1. pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2

注册app

  1. INSTALLED_APPS = [
  2. # ...
  3. # xamin主体模块
  4. 'xadmin',
  5. # 渲染表格模块
  6. 'crispy_forms',
  7. # 为模型通过版本控制,可以回滚数据
  8. 'reversion',
  9. ]

Xadmin数据库迁移

xadmin:需要自己的数据库模型类,完成数据库迁移, 迁移之后就会多出相对应的xadmin表

  1. >: python manage.py migrate

设置Xadmin路由

设置主路由替换掉admin:主urls.py

  1. # xadmin的依赖
  2. import xadmin
  3. xadmin.autodiscover()
  4. # xversion模块自动注册需要版本控制的 Model
  5. from xadmin.plugins import xversion
  6. xversion.register_models()
  7. urlpatterns = [
  8. # 用Xadmin后台替换原生的admin后台
  9. path(r'xadmin/', xadmin.site.urls),
  10. ]

创建超级用户

创建超级用户:外层luffyapi路径终端

  1. >: python manage.py createsuperuser
  2. 账号密码设置:admin | admin

完成全局美化配置

完成xadmin全局配置:新建home/adminx.py

  1. # home/adminx.py
  2. # xadmin全局配置
  3. import xadmin
  4. from xadmin import views
  5. class GlobalSettings(object):
  6. """xadmin的全局配置"""
  7. site_title = "路飞学城" # 设置站点标题
  8. site_footer = "路飞学城有限公司" # 设置站点的页脚
  9. menu_style = "accordion" # 设置菜单折叠
  10. xadmin.site.register(views.CommAdminView, GlobalSettings)

注册相应的字段以及Xadmin

在adminx.py中注册model:home/adminx.px

  1. from . import models
  2. # 注册
  3. xadmin.site.register(models.Banner)

修改app:home的名字:xadmin页面上的显示效果

  1. # home/__init__.py
  2. default_app_config = "home.apps.HomeConfig"
  3. # home/apps.py
  4. from django.apps import AppConfig
  5. class HomeConfig(AppConfig):
  6. name = 'home'
  7. verbose_name = '我的首页'

xadmin的使用

1.需要在app中创建adminx.py文件

  1. import xadmin
  2. from repository import models
  3. from xadmin import views
  4. class UserProfileAdmin(object):
  5. # 显示的字段名称
  6. list_display = ['id','name' ,'email','phone','mobile']
  7. # 搜索时可输入的字段内容
  8. search_fields = ['id', 'name', 'email', 'phone']
  9. # 点击id可进入详细界面进行编辑(默认的)
  10. list_display_links = ('id',)
  11. # 可编辑的列名
  12. list_editable = ['name' ,'email','phone','mobile']
  13. # list_filter = ['name' ,'email','phone','mobile']
  14. # 每页显示多少条
  15. list_per_page = 20
  16. #根据id排序
  17. ordering = ('id',) 
  18.  
  19. #设置只读字段 
  20. readonly_fields = ('user_email',)
  21. #显示本条数据的所有信息
  22. show_detail_fields = ['asset_name']
  23. xadmin.site.register(models.UserProfile,UserProfileAdmin)

2.数据导出

如果想要导出Excel数据,需要安装xlwt

默认情况下,xadmin会提供ExcelCSV,XMLjson四种格式的数据导出,可以通过设置OptionClasslist_export属性来指定使用哪些导出格式(四种格式分别用xlscsvxmljson表示)或是将list_export设置为None来禁用数据导出功能

  1. list_export = ('xls', 'xml', 'json')
  2. list_export_fields = ('id', 'name', 'title')

3.设置全局的配置

  1. # 全局修改,固定写法
  2. class GlobalSettings(object):
  3. # 修改title
  4. site_title = 'xxx后台管理界面'
  5. # 修改footer
  6. site_footer = 'xxx的公司'
  7. # 收起菜单
  8. menu_style = 'accordion'
  9. # 设置 models图标
  10. # https://v3.bootcss.com/components/
  11. # http://www.yeahzan.com/fa/facss.html
  12. global_search_models = [models.Disk, models.Server]
  13. global_models_icon = {
  14. # Server: "glyphicon glyphicon-tree-conifer", Pool: "fa fa-cloud"
  15. models.Server: "fa fa-linux", models.Disk: "fa fa-cloud"
  16. }
  17. # 将title和footer信息进行注册
  18. xadmin.site.register(views.CommAdminView,GlobalSettings)

4.图表显示

  1. data_charts = {
  2. "host_service_type_counts": {
  3. 'title': '部门机器使用情况',
  4. 'x-field': "business_unit",
  5. 'y-field': ("business_unit"),
  6. 'option': {
  7. "series": {"bars": {"align": "center", "barWidth": 0.8, "show": True}},
  8. "xaxis": {"aggregate": "count", "mode": "categories"}
  9. },
  10. },
  11. "host_idc_counts": {
  12. 'title': '机房统计',
  13. 'x-field': "idc",
  14. 'y-field': ("idc",),
  15. 'option': {
  16. "series": {"bars": {"align": "center", "barWidth": 0.3, "show": True}},
  17. "xaxis": {"aggregate": "count", "mode": "categories"}
  18. }
  19. }
  20. }

5.注册模型与对应的管理类

  1. xadmin.site.register(models.Disk, DiskAdmin)
  2. xadmin.site.register(models.Server, ServerAdmin)
  3. xadmin.site.register(models.IDC, IDCAdmin)
  4. xadmin.site.register(models.UserProfile, UserProfileAdmin)
  5. xadmin.site.register(models.UserGroup, UserGroupAdmin)

Django的Xadmin使用的更多相关文章

  1. Django+Celery+xadmin实现异步任务和定时任务

    Django+Celery+xadmin实现异步任务和定时任务 关注公众号"轻松学编程"了解更多. 一.celery介绍 1.简介 [官网]http://www.celerypro ...

  2. python框架Django使用xadmin管理后台数据

    Django使用xadmin管理后台数据 关注公众号"轻松学编程"了解更多. 作用:xadmin比Django内置的admin更美观.更方便. 一.导入xadmin(第三方库) 方 ...

  3. Django安装Xadmin步骤

    在Django中安装Xadmin替换原始的admin,下面介绍两种方法安装 第一种方法:pip安装 第一步: 直接pip安装xadmin pip install xadmin pip会同时安装上面三个 ...

  4. Django之Xadmin

    零.预备知识 单例对象 方式一:__new__方法 方式二:模块导入,只要在引入的文件中实例了这个对象,不管引道哪里,这个对象都指向同一个内存空间 class My_singleton(object) ...

  5. Django配置xadmin后台模板之坑(一)

    环境: Python3.6 + Django2.0 + xadmin2.0 一.安装 1.首先安装就会有一个坑,很多教程的安装是直接在虚拟环境下使用 pip install xadmin 或者 pip ...

  6. Django集成Xadmin list index out of range报错解决方案

    return self.render(context) File "C:\Python36\lib\site-packages\django\template\defaulttags.py& ...

  7. django 配置xadmin

    django xadmin本地安装 百度云 下载,激活码:bxhv,下载后不需要解压,直接本地 pip install xxx.zip django 版本需要 1.1.11, 1,添加app INST ...

  8. Django使用xadmin集成富文本编辑器Ueditor(方法二)

    一.xadmin的安装与配置1.安装xadmin,其中第一种在python3中安装不成功,推荐第二种或者第三种 方式一:pip install xadmin 方式二:pip install git+g ...

  9. django使用xadmin

    一.安装xadmin 由于我用的是Django2.0以后的版本 所以无法直接通过pip install xadmin来安装 即使安装成功了 也会报乱七八糟的错误 https://github.com/ ...

随机推荐

  1. 洛谷 P4316绿豆蛙的归宿

    题目描述 记f[i]表示经过i号点的概率. 那么点v从点u到达的概率=经过点u的概率/点u的出度.由于v可以由多个点走到,所以f[v]+=f[u]/out[u]. 计算f的过程可以在拓扑中完成,同时可 ...

  2. 【00NOIP普及组】计算器的改良(信息学奥赛一本通 1910)(洛谷 1022)

    [题目描述] NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能.实验室将这个任务交给了一个刚进入的新手ZL先 ...

  3. pycharm+gitee【代码上传下载】实战(windows详细版)

    pycharm+gitee环境搭建好以后应该如何进行代码上传下载操作呢?举几个例子,此文会一直更新 环境:2019社区版pycharm+gitee+git 系统:windows系统 一.代码上传功能 ...

  4. Dubbo+zookeeper实现单表的增删改查

    1.数据库准备 建表语句 CREATE TABLE `tb_brand` ( `id` ) NOT NULL AUTO_INCREMENT, `name` ) DEFAULT NULL COMMENT ...

  5. RocketMq重复消费问题排查

    前情 出现了重复消费的问题,同一个消息被重复消费了多次,导致了用户端收到了多条重复的消息,最终排查发现,是因为消费者在处理消息的方法onMessage中有异常没有捕获到,导致异常上抛,被consume ...

  6. 【软工实践】Alpha冲刺(6/6)

    链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 tomcat的学习与实现 服务器后端部署,API接口的beta版实现 后端代码 ...

  7. 剑指offer:删除链表中重复的结点

    题目描述: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理 ...

  8. Java多个线程顺序打印数字

    要求 启动N个线程, 这N个线程要不间断按顺序打印数字1-N. 将问题简化为3个线程无限循环打印1到3 方法一: 使用synchronized 三个线程无序竞争同步锁, 如果遇上的是自己的数字, 就打 ...

  9. SnowFlake分布式ID生成及反解析

    概述 分布式id生成算法的有很多种,Twitter的SnowFlake就是其中经典的一种,SnowFlake算法生成id的结果是一个64bit大小的整数,它的结构如下图: 1位,不用.二进制中最高位为 ...

  10. Post Setting Proxy 设置 代理

    postman的代理使用篇(四) - codingstudy - SegmentFault 思否https://segmentfault.com/a/1190000012024844 postman ...