Flask和Flask-SQLAlchemy的新手。试图连接到远程MSSQL数据库。
工具集: macOS 10.13(High Sierra) Python3 烧瓶 烧瓶的SQLAlchemy freetds的 pyodbc
如果我使用标准的flask-sqlalchemy URI建立连接,如下所示:
app.config['SQLALCHEMY_DATABASE_URI'] = 'mssql+pyodbc://<username>:<password>@<servername>/<database name>?port=1433&driver=FreeTDS&tds_version=7.3'
我最终收到此错误消息:
sqlalchemy.exc.ProgrammingError: (pyodbc.ProgrammingError) ('42000', "[42000] [FreeTDS][SQL Server]Login failed for user '<username>'. (18456) (SQLDriverConnect)")
有趣的是,如果我只是在烧瓶外面使用直接的pyodbc连接,它就可以工作。那段代码:
cnxn = pyodbc.connect('DRIVER={FreeTDS};TDS_Version=7.3;SERVER=<servername>;PORT=1433;DATABASE=<database name>;UID=<username>;PWD=<password>')
我需要通过Flask-SQLAlchemy解决连接问题,或者知道是否可以使用直接的pyodbc.connect语句创建连接,并以某种方式将其传递给Flask-SQLAlchemy。
感谢您的任何指导或想法。
更新
我也尝试过:
params = urllib.parse.quote_plus('DRIVER={FreeTDS};SERVER=<servername>;DATABASE=<database name>;PORT=1433;UID=<username>;PWD=<password>;TDS_Version=7.3')
app.config['SQLALCHEMY_DATABASE_URI'] = "mssql+pyodbc:///?odbc_connect=%s" % params
但我得到的相同&#39;登录失败&#39;错误。