xadmin的安裝和基本使用方法
阿新 • • 發佈:2020-06-30
Django-xadmin的介紹
> `Django`是`python`的重量級web框架,寫得少,做得多,非常適合後端開發,它很大的一個亮點是,自帶後臺管理模組,但它自帶的後臺管理有點醜,而`Xadmin`是基於`bootstrap`開發的一套後臺管理框架,介面非常美觀,只需幾步就可以替換自帶的`Django_admin`
具體的安裝步驟
1. xadmin在python2.x時代的安裝方法
在python2.x時代,安裝xadmin是通過如下命令
pip install xadmin
2.xadmin
在python3.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
2.2、解壓縮,得到xadmin
資料夾,複製到專案的extra_apps
,解壓縮,得到xadmin
資料夾, 如下圖所示:
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.py
的admin
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
遷移完成後,我們看到資料庫多了幾張表
2.8、pycharm
建立superuser
使用者
python3 manage.py makemigrations
python3 manage.py migrate
至此完成。
如果報錯,請先把原先舊的app
裡面admin.py
裡面的註冊程式碼去掉,再試試
執行一下專案,訪問
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
會提供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')
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)
- 圖表顯示
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"}
}
}
}
- 註冊模型與對應的管理類
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)