Django 连接到 IBM Cloud 数据库
Django connect to IBM Cloud database
我是 Django 的新手。我正在尝试将 Django 应用程序连接到 IBM Cloud 数据库,我加载了我的数据 IBM 云并创建了凭证。
然后安装ibm_db_django
$ easy_install ibm_db_django
然后在 setting.py 中导入
import ibm_db_django
然后我在 settings.py
中添加了 credionals
DATABASES = {
'default': {
'ENGINE' : 'ibm_db_django',
'NAME' : 'BLUDB',
'USER' : 'USER',
'PASSWORD' : 'PASSWORD',
'HOST' : 'dashdb-txn-sbox-yp-lon02-02.services.eu-gb.bluemix.net',
'PORT' : '50000',
'PROTOCOL' : 'TCPIP',
'PCONNECT' : True,
},
}
python manage.py test django.contrib.auth
的输出:
System check identified no issues (0 silenced).
这足以连接到 ibm 云数据库吗?
现在我如何测试它是否连接到数据库,以及如何从数据库生成模型?
使用以下版本,我可以连接 python + django + ibm_db_django + Db2-on-cloud .
运行 python manage.py migrate
显示连接Db2-on-cloud成功
根据版本的不同,如果缺少特定的数据库权限,python manage.py migrate
可能会因 Db2-on-cloud 'lite'(免费)计划而失败。
要在 运行 和 manage.py migrate
成功后进一步使用 django,请按照您的 django 版本在 djangoproject.com
上的在线教程进行操作。
我尝试了这些版本(2020 年 2 月):
python 3.6.9 x64
pip 20.0.2
django 2.2.5
ibm_db 3.0.1
ibm_db_django 1.2.0.0a0 (lower versions always failed).
注意:其他组合可能有效,您的里程可能会有所不同。
我修补了 ibm_db_dbi.py
以解决 github 中详述的开放缺陷
(https://github.com/ibmdb/python-ibmdb-django/issues/44)
(感谢 trebor74hr )
为了使 manage.py migrate
步骤生效,我所做的三个 settings.py
更改是:
(1) 安装的应用可能因您的版本和应用而异。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.flatpages',
'django.contrib.redirects',
'django.contrib.sites',
]
(2)
DATABASES = {
'default': {
'ENGINE' : 'ibm_db_django',
'NAME' : 'bludb',
'USER' : '......',
'PASSWORD' : '...............',
'HOST' : 'dashdb-txn-sbox-............services....bluemix.net',
'PORT' : '50000',
'PCONNECT' : True, #Optional property. It is true by default
}
}
(3)
#USE_TZ = True
(or remove the line, the # makes it a comment ).
我是 Django 的新手。我正在尝试将 Django 应用程序连接到 IBM Cloud 数据库,我加载了我的数据 IBM 云并创建了凭证。
然后安装ibm_db_django
$ easy_install ibm_db_django
然后在 setting.py 中导入
import ibm_db_django
然后我在 settings.py
中添加了 credionalsDATABASES = {
'default': {
'ENGINE' : 'ibm_db_django',
'NAME' : 'BLUDB',
'USER' : 'USER',
'PASSWORD' : 'PASSWORD',
'HOST' : 'dashdb-txn-sbox-yp-lon02-02.services.eu-gb.bluemix.net',
'PORT' : '50000',
'PROTOCOL' : 'TCPIP',
'PCONNECT' : True,
},
}
python manage.py test django.contrib.auth
的输出:
System check identified no issues (0 silenced).
这足以连接到 ibm 云数据库吗? 现在我如何测试它是否连接到数据库,以及如何从数据库生成模型?
使用以下版本,我可以连接 python + django + ibm_db_django + Db2-on-cloud .
运行 python manage.py migrate
显示连接Db2-on-cloud成功
根据版本的不同,如果缺少特定的数据库权限,python manage.py migrate
可能会因 Db2-on-cloud 'lite'(免费)计划而失败。
要在 运行 和 manage.py migrate
成功后进一步使用 django,请按照您的 django 版本在 djangoproject.com
上的在线教程进行操作。
我尝试了这些版本(2020 年 2 月):
python 3.6.9 x64
pip 20.0.2
django 2.2.5
ibm_db 3.0.1
ibm_db_django 1.2.0.0a0 (lower versions always failed).
注意:其他组合可能有效,您的里程可能会有所不同。
我修补了 ibm_db_dbi.py
以解决 github 中详述的开放缺陷
(https://github.com/ibmdb/python-ibmdb-django/issues/44)
(感谢 trebor74hr )
为了使 manage.py migrate
步骤生效,我所做的三个 settings.py
更改是:
(1) 安装的应用可能因您的版本和应用而异。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.flatpages',
'django.contrib.redirects',
'django.contrib.sites',
]
(2)
DATABASES = {
'default': {
'ENGINE' : 'ibm_db_django',
'NAME' : 'bludb',
'USER' : '......',
'PASSWORD' : '...............',
'HOST' : 'dashdb-txn-sbox-............services....bluemix.net',
'PORT' : '50000',
'PCONNECT' : True, #Optional property. It is true by default
}
}
(3)
#USE_TZ = True
(or remove the line, the # makes it a comment ).