Sybase Connection with Flask sqlAlchemy



我正在尝试使用ODBC连接将Sybase数据库与flask SQLalchemy连接。

连接字符串:'SQLALCHEMY_DATABASE_URI' = "sybase+pyodbc://username:passw@rd@host:port/dbname?driver=Adaptive+Server+Enterprise">

得到这个错误:

但我很确定我在连接字符串中使用了正确的端口。但是当我尝试使用此方法连接到同一实例时。

第二种方法:

con = pyodbc.connect(server=server ,port=port ,username=username ,password=password ,driver=driver)

现在连接工作完全正常,连接细节相同。

谁能帮助我建立连接字符串URL,并帮助我解决这个问题。因为我想用db对象而不是"游标对象">

如wiki页面中所述," Hostname Connections"不支持。您既可以创建ODBC DSN,也可以将pyodbc连接字符串与ODBC直接直通连接一起使用:

import urllib
from sqlalchemy import create_engine
connection_string = (
'DRIVER=SAP ASE ODBC driver;'
'SERVER=centos7-vm01;'
'PORT=5000;'
'UID=scott;PWD=tiger;'
'DATABASE=mydatabase;'
'charset=utf8;'
)
connection_uri = f"sybase+pyodbc:///?odbc_connect={urllib.parse.quote_plus(connection_string)}"
engine = create_engine(connection_uri)

经过仔细研究,我发现这个错误是由于连接字符串中的参数不正确。

无效端口号错误

这里的代码:

import urllib
connection_string = (
'DRIVER=Adaptive Server Enterprise;'
'SERVER=server;'
'PORT=port;'
'UID=username;PWD=password;'
'DATABASE=dbname;'
)
connection_uri = f"sybase+pyodbc:///?odbc_connect={urllib.parse.quote_plus(connection_string)}"
SQLALCHEMY_DATABASE_URI = connection_uri # connection string for SQLALchemy 

这个代码是最好的解决方案。

最新更新