Django 连接到 IBM Cloud 数据库
Posted
技术标签:
【中文标题】Django 连接到 IBM Cloud 数据库【英文标题】:Django connect to IBM Cloud database 【发布时间】:2020-06-03 09:52:51 【问题描述】:我是 Django 的新手。我正在尝试将 Django 应用程序连接到 IBM Cloud db,我加载了我的数据 IBM Cloud 并创建了凭证。
然后安装 ibm_db_django
$ easy_install ibm_db_django
然后在setting.py中导入
import ibm_db_django
然后我在 settings.py 中添加了凭据
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 cloud db 吗? 现在如何测试它是否连接到数据库,以及如何从数据库生成模型?
【问题讨论】:
您可以按照此处所述进行测试:ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/… 它会创建一个示例项目。 “迁移表”是什么意思? 嗨,python 的输出 --version: Python 3.6.9 :: Anaconda, Inc. python -c "import django; print(django.get_version())": 2.2.5pip show ibm_db_django
的输出:Name: ibm-db-django Version: 1.2.0.0 Summary: DB2 support for Django framework. Home-page: http://pypi.python.org/pypi/ibm_db_django/ Author: Ambrish Bhargava, Tarun Pasrija, Rahul Priyadarshi Author-email: opendev@us.ibm.com License: Apache License 2.0 Location: c:\users\internet\anaconda3\lib\site-packages\ibm_db_django-1.2.0.0-py3.6.egg Requires: ibm-db, django Required-by:
【参考方案1】:
使用以下版本,我可以连接 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,请按照djangoproject.com
的 django 版本在线教程进行操作。
我尝试了这些版本(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 连接到 IBM Cloud 数据库的主要内容,如果未能解决你的问题,请参考以下文章
IBM Cloud Object Storage Connection 问题 Watson Studio Python 笔记本
Django、Informix、ibm_db 和 DB2 数据服务器驱动程序
在 Python Flask Cloud Foundry/IBM Cloud 应用程序中添加 Java/JRE/JVM