zoukankan      html  css  js  c++  java
  • xadmin安装2

    Django-xadmin的介绍
    > `Django`是`python`的重量级web框架,写得少,做得多,非常适合后端开发,它很大的一个亮点是,自带后台管理模块,但它自带的后台管理有点丑,而`Xadmin`是基于`bootstrap`开发的一套后台管理框架,界面非常美观,只需几步就可以替换自带的`Django_admin`
    具体的安装步骤
    1. xadmin在python2.x时代的安装方法

    在python2.x时代,安装xadmin是通过如下命令

    pip install xadmin

    2.xadminpython3.6.x时代的安装方法

    需要安装如下的包

    pip3 install django-import-export
    pip3 install django-reversion
    pip3 install django-formtools==2.1
    pip3 install future
    pip3 install httplib2
    pip3 install six
    pip3 install django-crispy-forms
    

    2.1 下载xadmin

    https://github.com/sshwsfc/xadmin

    2.2、解压缩,得到xadmin文件夹,复制到项目的extra_apps,解压缩,得到xadmin文件夹, 如下图所示:

    xadmin.jpg

    2.3、在django中的根目录下创建Python Package,命名为extra_apps(如果不存在此文件夹则创建, 然后 鼠标右键extra_app 随后 mark as sources root
    Python Package是带init文件的,跟普通Package不同)

    创建完extra_apps,需要在settings中配置一下extra_apps。设置为可搜索的路径

    import os
    import sys
    
    # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps')) # 把extra_apps文件夹添加到搜索目录中
    

    2.4、把xadmin文件夹复制到extra_apps

    2.5、xadmin的配置

    配置到 INSTALLED_APPS

    
    ## 显示中文
    # Application definition
    # LANGUAGE_CODE = 'en-us'
    LANGUAGE_CODE = 'zh-hans'
     
    # TIME_ZONE = 'UTC'
    TIME_ZONE = 'Asia/Shanghai'
    
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    
        'xadmin',
        'crispy_forms', # 注意crispy_forms之间是下划线隔开,不是横线
    ]
    

    2.6、修改urls.pyadmin

    import xadmin
    from django.conf.urls import url
    from django.contrib import admin
    
    urlpatterns = [
        # url('admin/', admin.site.urls),
        url(r'^xadmin/', xadmin.site.urls),
    ]
    

    2.7、迁移文件

    python3 manage.py makemigrations
    python3 manage.py migrate
    

    迁移完成后,我们看到数据库多了几张表

    xadmintable.jpg

    2.8、pycharm创建superuser 用户

    python3 manage.py makemigrations
    python3 manage.py migrate
    

    至此完成。

    如果报错,请先把原先旧的app里面admin.py里面的注册代码去掉,再试试

    运行一下项目,访问

    http://127.0.0.1:8000/xadmin/

    xadmin的使用

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

    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)
    

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

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

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

    4.设置全局的配置

    # 全局修改,固定写法
    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)
    
    
    1. 图表显示
    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"}
                }
            }
        }
    
    1. 注册模型与对应的管理类
    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)
    

  • 相关阅读:
    poj 3528 (三维几何求凸包+凸包表面积)
    dijkstra模板(好像是斐波那契额堆优化,但我为什么看起来像优先队列优化,和spfa一样)
    最大空凸包模板
    ICPC 2017–2018, NEERC, Northern Subregional Contest St Petersburg, November 4, 2017 I题
    hdu 5248 序列变换
    hdu 2063(二分图模板测试)
    组合数
    85. Maximal Rectangle 由1拼出的最大矩形
    750. Number Of Corner Rectangles四周是点的矩形个数
    801. Minimum Swaps To Make Sequences Increasing 为使两个数组严格递增,所需要的最小交换次数
  • 原文地址:https://www.cnblogs.com/bladecheng/p/11853703.html
Copyright © 2011-2022 走看看