Django的Db2驱动?

问题描述 投票:-1回答:1

在我看来,Django目前只提供了4个后端数据库引擎,分别是

  1. "django.db.backends.postgresql
  2. 'django.db.backends.mysql'。
  3. 'django.db.backends.sqlite3'。
  4. 'django.db.backends.oracle'。

如果我使用MySQL,我所要做的仅仅是填入 Engine'django.db.backends.mysql'. 但是现在,因为我的主数据库是DB2,所以我在连接它和pyodbc时遇到了一些问题。需要什么?

import os

SECRET_KEY = 'o0zdmzzdw44tkd5a7o*h-@*bo)r@f#)!)$)8f-y%=sn*kr)@t%'

DEBUG = True

ALLOWED_HOSTS = [127.0.0.1]

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'arapi.apps.ArapiConfig', #my projeck
    'rest-framework', 
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'arDRFAPIWEB.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

WSGI_APPLICATION = 'arDRFAPIWEB.wsgi.application'

DATABASES = {
      'default': {
          'ENGINE': 'ibm_db_django',
          'NAME': as400,
          'USER' : root,
          'PASSWORD' : root,
          'HOST' : as400.****.co.id,
          'PORT' : 3306,
          'PCONNECT'   :  True, #Optional property, default is false
      }
   }

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]


LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

STATIC_URL = '/static/'

当我运行 python manage.py test 我得到了这个错误

试着使用'django.db.backends.XXX',其中XXX是以下其中之一:'mysql', 'oracle', 'postgresql', 'sqlite3'。 'mysql', 'oracle', 'postgresql', 'sqlite3'中的一个。

虽然我已经降级了 python into 3.6.5 版本和我 django is 2.1.1 我想这可能会解决这个问题。

django db2 pyodbc
1个回答
1
投票

有一个针对IBM Db2的Django驱动。它甚至是 在Db2文档中引用 而有一份文件描述了 Db2和Django的设置过程。. 在那里,他们建议这样的配置。

DATABASES = {
  'default': {
  'ENGINE'   : 'ibm_db_django',
  'NAME'     : 'database',
  'USER'     : 'user',
  'PASSWORD' : 'password',
  'HOST'     : 'localhost',
  'PORT'     : '50000',
  'PCONNECT' :  True,      #Optional property. It is true by default
  }
}

你可以找到驱动程序 包 ibm_db_django 的相关GitHub repo中。

您需要在相关的 GitHub 仓库中指定 ibm_db_django 而不是,例如 django.db.backends.mysql. django.db.backends.db2 会出现错误。

© www.soinside.com 2019 - 2024. All rights reserved.