我得到了一个 ODBC 连接字符串来连接数据库。但是,我很难让我的 Django 应用程序连接到它。让我的应用程序连接到它的正确步骤是什么?我的代码中是否缺少任何内容?
这是我的连接字符串:
Driver={SQL Anywhere 17};uid=user;pwd=secret;server=databasename;astart=No;host=127.0.0.1;port=1234
使用使用 pyodbc 的测试脚本,我能够连接到数据库。但是,当我尝试修改我的应用程序的 settings.py 文件时,它无法连接到数据库。
需求.py
django~=2.1.4
pyodbc~=4.0.25
django-pyodbc-azure~=2.1.0.0
设置.py
#First Attempt
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'HOST': '127.0.0.1,1234',
'USER': 'user',
'PASSWORD': 'secret',
'NAME': 'databasename',
'PORT': '1234',
'OPTIONS': {
'driver' : 'SQL Anywhere 17',
'host_is_server': 'True',
},
}
}
#Second Attempt
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'HOST': '',
'NAME': 'databasename;',
'PORT': '',
'OPTIONS': {
'host_is_server': 'True',
'dsn': 'Driver={SQL Anywhere 17};uid=user;pwd=secret;server=databasename;astart=No;host=127.0.0.1;port=1234'
},
}
}
对于我的第一次尝试,我收到以下错误:
django.db.utils.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
对于我的第二次尝试,我收到以下错误:
django.db.utils.Error: ('IM010', '[IM010] [Microsoft][ODBC Driver Manager] Data source name too long (0) (SQLDriverConnect)')
我不确定我做错了什么。任何帮助将不胜感激。