Bootstrap

Flask-SQLAlchemy无法连接SQL Server

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

;