Flask-SQLAlchemy 连接 SQL Server 时有可能会出现“未发现数据源名称并且未指定默认驱动程序 ”的异常,不能正确连接数据库,异常信息:
sqlalchemy.exc.InterfaceError: (pyodbc.InterfaceError) (‘IM002’, ‘[IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 (0) (SQLDriverConnect)’)
查了一下午资料,相关资料太少,不过终于搞定,就是因为没有指定驱动程序导致,可以通过如下方式指定驱动程序,相关配置如下:
# config.py
......
DB_URI = 'mssql+pyodbc://{}:{}@{}:{}/{}?driver=SQL+Server+Native+Client+11.0'.format(USERNAME, PASSWORD, HOST_NAME, PORT, DATABASE)
SQLALCHEMY_DATABASE_URI = DB_URI
......
在主程序中导入该配置即可
# main.py
from flask import Flask
import config # 导入上述配置文件
app = Flask(__name__)
app.config.from_object(config)
db.init_app(app)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000, debug=True)
至此即可正常使用 Flask-SQLAlchemy