【发布时间】:2018-10-29 00:01:34
【问题描述】:
我无法使用 Flask-SQLALchemy 和 pyodbc 连接到 MSSQL Server 2016 数据库。我已经通过 Google 进行了搜索,但没有一个解决方案有效。
我收到以下错误:
sqlalchemy.exc.InterfaceError: (pyodbc.InterfaceError) ('IM002', u'[IM002] [Microsoft][ODBC Driver Manager] 未找到数据源名称 并且没有指定默认驱动程序 (0) (SQLDriverConnect)')
我当前的本地环境是:
- Windows 7 专业版
- Python 2.7
我可以只用 pyodbc 而没有 Flask 连接到数据库。
import pyodbc
server = '<server>'
database = '<database>'
username = '<username>'
password = '<password>'
cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER='+server+';PORT=1443;DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
#Select Query
print ('Reading data from table')
tsql = "SELECT DISTINCT TOP 10 * FROM dbo.Test;"
with cursor.execute(tsql):
row = cursor.fetchone()
while row:
print (str(row[0]) + " " + str(row[1]))
row = cursor.fetchone()
应用程序代码片段
config.py
SQLALCHEMY_DATABASE_URI = mssql+pyodbc:///?odbc_connect="DRIVER={ODBC Driver 13 for SQL Server};SERVER=<server>;DATABASE=<database>;UID=<username>;PWD=<password>
SQLALCHEMY_TRACK_MODIFICATIONS = False
__init__.py
import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from config import Config
db = SQLAlchemy()
migrate = Migrate()
def create_app(config_class=Config):
app = Flask(__name__)
app.config.from_object(config_class)
db.init_app(app)
migrate.init_app(app, db)
from app.errors import bp as errors_bp
app.register_blueprint(errors_bp)
from app.main import bp as main_bp
app.register_blueprint(main_bp)
return app
from app import models
【问题讨论】:
标签: python sql-server flask sqlalchemy pyodbc