在Flask中使用Flask-SQLAlchemy和pyodbc连接到MSSQL。

问题描述 投票:5回答:1

我无法连接到 MSSQL Server 2016 数据库使用 Flask-SQLALchemypyodbc. 我在谷歌上搜索了一下,没有一个解决方案。

我得到以下错误。

sqlalchemy.exc.InterfaceError.(pyodbc.InterfaceError)('IM002', u'[IM002] [Microsoft][ODBC Driver]) (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
1个回答
0
投票

这应该是你的工作 SQLALCHEMY_DATABASE_URI 连接值。

mssql://user:pwd!@PATH_TO_MSSQL_LOCATION?driver=SQL+Server+Native+Client+11.0

你可能需要用上下不同的版本号来做实验,虽然原生驱动的版本可能是可以确定的。

© www.soinside.com 2019 - 2024. All rights reserved.