Python 使用烧瓶SQLAlchemy和pyodbc连接到烧瓶中的MSSQL

Python 使用烧瓶SQLAlchemy和pyodbc连接到烧瓶中的MSSQL,python,sql-server,flask,sqlalchemy,pyodbc,Python,Sql Server,Flask,Sqlalchemy,Pyodbc,我无法使用Flask SQLALchemy和pyodbc连接到MSSQL Server 2016数据库。我在谷歌上搜索过,没有一个解决方案有效 我得到以下错误: sqlalchemy.exc.InterfaceError:(pyodbc.InterfaceError)(“IM002”, 找不到u'[IM002][Microsoft][ODBC驱动程序管理器]数据源名称 并且未指定默认驱动程序(0)(SqlDriverConnection)“”) 我目前的当地环境是: Windows7专业版 P

我无法使用
Flask SQLALchemy
pyodbc
连接到MSSQL Server 2016数据库。我在谷歌上搜索过,没有一个解决方案有效

我得到以下错误:

sqlalchemy.exc.InterfaceError:(pyodbc.InterfaceError)(“IM002”, 找不到u'[IM002][Microsoft][ODBC驱动程序管理器]数据源名称 并且未指定默认驱动程序(0)(SqlDriverConnection)“”)

我目前的当地环境是:

  • Windows7专业版
  • 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()

这应该用作您的
SQLALCHEMY\u数据库\u URI
连接值:

mssql://user:pwd!@PATH_TO_MSSQL_LOCATION?driver=SQL+Server+Native+Client+11.0
您可能需要上下试验不同的版本号,尽管本机驱动程序的版本可能是可以确定的

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
mssql://user:pwd!@PATH_TO_MSSQL_LOCATION?driver=SQL+Server+Native+Client+11.0