天天看點

Django+xadmin+rules 環境搭建 第一章

Django2.0隻支援Oracle 12.1,要連接配接11g,隻能降級到Django 1.11.20

是以隻能使用django1.11.20版本

1. 修改pycharm預設的django版本

Django+xadmin+rules 環境搭建 第一章

使用指令行解除安裝和安裝:

# 解除安裝
pip uninstall django

# 安裝,這裡使用了國内的pip源
pip install django==1.11.20 -i https://pypi.tuna.tsinghua.edu.cn/simple
           

2. 安裝oracle和mysql資料庫插件包

# oracle
pip install cx-oracle -i https://pypi.tuna.tsinghua.edu.cn/simple

# mysql
pip install mysqlclient -i https://pypi.tuna.tsinghua.edu.cn/simple
           

這裡安裝時,可能會報出這個錯誤:

MySQLdb/_mysql.c(29): fatal error C1083: 無法打開包括檔案: “mysql.h”: No such file or directory
           

這種情況就要下載下傳離線包,再進行安裝了:

Django+xadmin+rules 環境搭建 第一章

我這裡下載下傳到了桌面,然後使用pip安裝

Django+xadmin+rules 環境搭建 第一章

3. 下載下傳django-xadmin

下載下傳位址為:https://github.com/sshwsfc/xadmin/

我這裡使用pip安裝不成功,也就隻能下載下傳源碼,進行安裝了:

Django+xadmin+rules 環境搭建 第一章

将壓縮包中的所需内容拷貝到項目裡:

Django+xadmin+rules 環境搭建 第一章

這時候的項目目錄如下圖:

Django+xadmin+rules 環境搭建 第一章

使用django-xadmin,還需要安裝一些依賴,而這些依賴都在requirements配置好了,我們對其進行安裝:

pip install -r requirements.txt
           
Django+xadmin+rules 環境搭建 第一章

4. 為了區分本地app和他人app,我們建立下面兩個檔案夾:

Django+xadmin+rules 環境搭建 第一章

注意:選中上述檔案夾後,要Sources Root一下

然後将,xadmin放入到extra_apps中:

Django+xadmin+rules 環境搭建 第一章

5. 在setting.py檔案中添加内容,讓django能夠找到我們的app

# app識别配置
import sys
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))  # 将apps目錄設定成python可識别目錄
sys.path.insert(1, os.path.join(BASE_DIR, 'extra_apps'))  # 将xadmin所在目錄設定成python可識别目錄


# app配置
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'xadmin',
    'crispy_forms',
    'reversion',
]
           

6. 修改字元集編碼,讓xadmin顯示中文:

LANGUAGE_CODE = 'zh-hans'  # 更改(xadmin中文)

TIME_ZONE = 'Asia/Shanghai'  # 更改

USE_I18N = True

USE_L10N = True

USE_TZ = False
           

7. 修改資料庫配置

資料庫直接配置在setting檔案裡不太合适,遂将其提取出來放到config配置檔案中,并修改setting.py檔案内容

# 讀取配置檔案
config_init = configparser.ConfigParser()
path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
config_init.read(os.path.join(path, 'config/config.ini'), encoding='utf-8-sig')


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': config_init.get("Mysql", "host"),
        'PORT': config_init.get("Mysql", "port"),
        'NAME': config_init.get("Mysql", "name"),
        'USER': config_init.get("Mysql", "user"),
        'PASSWORD': config_init.get("Mysql", "password"),
    },
    'db_oracle': {
        'ENGINE': 'django.db.backends.oracle',
        'HOST': config_init.get("Oracle", "host"),
        'PORT': config_init.get("Oracle", "port"),
        'NAME': config_init.get("Oracle", "name"),
        'USER': config_init.get("Oracle", "user"),
        'PASSWORD': config_init.get("Oracle", "password"),
    },

}
           

如圖:

Django+xadmin+rules 環境搭建 第一章

8. 嘗試啟動django項目:

程式報錯,報出缺少formtools、request依賴

安裝上述依賴:

pip install django-formtools==2.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple


pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
           

安裝完成後,再次啟動django項目,錯誤改變,但是變成了path無法識别的錯誤

Django+xadmin+rules 環境搭建 第一章

這是因為django降級導緻的,修改urls.py檔案,并添加xadmin路徑配置

from django.conf.urls import include, url
from django.conf.urls import url

import xadmin
xadmin.autodiscover()

# version子產品自動注冊需要版本控制的 Model
from xadmin.plugins import xversion
xversion.register_models()

from django.contrib import admin

xadmin.autodiscover()
urlpatterns = [
    # path('admin/', admin.site.urls),
    # url(r'^admin/', include(admin.site.urls)),
    url(r'^xadmin/', include(xadmin.site.urls))
]
           

9. 同步資料表到資料庫,我這裡的default使用的mysql資料庫

setting檔案裡的資料庫配置中,default使用那個庫,相關admin、xadmin、auth等就會建立在哪個資料庫中

資料庫表建立(更新)指令:python manage.py makemigrations

資料庫表應用指令:python manage.py migrate
           
Django+xadmin+rules 環境搭建 第一章

10 .建立超級使用者,通路站點

使用下面的語句建立超級使用者,并通路站點:

python manage.py createsuperuser
           

打開浏覽器,通路127.0.0.1:8000

Django+xadmin+rules 環境搭建 第一章
Django+xadmin+rules 環境搭建 第一章

至此,django+xadmin+mysql的相關配置已經完成

後面将添加oracle資料庫、rules、django日志等

上述django程式的環境依賴如下圖:

#requirements.txt

backports.csv==1.0.7
certifi==2019.6.16
chardet==3.0.4
cx-Oracle==7.2.2
defusedxml==0.6.0
diff-match-patch==20181111
Django==1.11.20
django-crispy-forms==1.7.2
django-formtools==2.1
django-import-export==1.2.0
django-reversion==3.0.4
et-xmlfile==1.0.1
future==0.15.2
futures==3.1.1
httplib2==0.9.2
idna==2.8
jdcal==1.4.1
mysqlclient==1.4.4
odfpy==1.4.0
openpyxl==2.6.3
pytz==2019.2
PyYAML==5.1.2
requests==2.22.0
six==1.10.0
sqlparse==0.3.0
tablib==0.13.0
urllib3==1.25.3
xlrd==1.2.0
xlwt==1.3.0