使用xadmin替換Django自帶後臺管理(admin)的環境搭建和配置

文檔:http://sshwsfc.github.io/xadmin/python

環境:Python3.6+Django2.0+Xadmin2.0+mysqlclient1.4.6
本次使用的xadmin官方倉庫地址爲:xadminmysql

因爲官方版本對Django2.0.x的支持問題(貌似已經再也不更新了),選用了一個修復版( xadmin修復版)

1.環境準備

  • 建立虛擬環境linux

    • anaconda中
      例如:conda create -n django2.0 django=2.0
    • virtualenvwrapper中
      例如:mkvirtualenv django2.0
      而後再pip install django==2.0
    具體虛擬環境的配置見虛擬環境的文檔
  • 安裝必要的包git

    • 安裝MySQLdb
      推薦使用"mysqlclient",能夠直接pip install mysqlclient,也能夠指定版本
    • 安裝MySQL服務端,並建立帳號(不推薦使用root用戶)和數據庫
      其中帳號除了須要賦予create/insert/delete/drop等權限外,還須要「REFERENCES」權限
    • 數據庫的配置(settings.py)以下github

      DATABASES = {
          'default': {
              # 'ENGINE': 'django.db.backends.sqlite3',
              # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
              'ENGINE': 'django.db.backends.mysql',
              'NAME': 'dbname',
              'USER': 'username',
              'PASSWORD': 'xxx',
              'HOST': 'localhost',
              'PORT': '3306',
              'OPTIONS': {
                  # 初始化數據庫的命令
                  'init_command': "SET sql_mode='STRICT_TRANS_TABLES';"
              }
          }
      }
    • 能夠在此時遷移數據,也能夠在下面適配好xadmin以後一塊兒遷移數據
      使用命令:sql

      python manage.py migrate

2.改造Django項目,適配xadmin

  • 安裝xadmin
    使用命令pip install git+git://github.com/sshwsfc/xadmin.git@django2
    該命令會安裝如下依賴包:
    pg1.png
  • 卸載xadmin
    使用命令pip uninstall xadmin卸載xadmin,依賴包會保留下來;
  • 配置項目數據庫

    • 將源碼下載到本地
    • 將根目錄下的xadmin複製到項目的extra_apps(自定義)目錄下
      xadminDir.png
    • 將extra_apps目錄設置爲 Resource Root,右鍵 Mark Directory as -> Resource Root(在pycharm中操做)
    • 在settings.py中添加應用django

      # 將extra_apps的添加至python項目的搜索目錄
      sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))
      
      INSTALLED_APPS = [
          'django.contrib.admin',
          'django.contrib.auth',
          'django.contrib.contenttypes',
          'django.contrib.sessions',
          'django.contrib.messages',
          'django.contrib.staticfiles',
          # 第三方管理後臺
          'xadmin',
          # 相關依賴
          'crispy_forms',
          # 相關依賴
          'reversion',
      ]
    • 在urls.py中添加路由,替換掉官方adminsession

      # from django.contrib import admin
      from django.urls import path
      import xadmin
urlpatterns = [
    # path('admin/', admin.site.urls),
    path('xadmin/', xadmin.site.urls),
]
```
  • 遷移數據app

    python manage.py migrate

    成功:
    suc.png

  • 在settings.py中設置中文顯示

    LANGUAGE_CODE = 'zh-Hans'
    
    TIME_ZONE = 'Asia/Shanghai'
  • 大功告成,啓動項目,登陸http://127.0.0.1:8000/xadmin
    login.png
相關文章
相關標籤/搜索