【问题标题】:Connect Flask app to SQL Server using Flask-SQLAlchemy with Windows authentication使用带有 Windows 身份验证的 Flask-SQLAlchemy 将 Flask 应用程序连接到 SQL Server
【发布时间】:2020-07-30 11:13:30
【问题描述】:

我按照this 设置了 Windows 身份验证。不知道它是否有效,因为现在有错误。

现在我有这个:

from flask import Flask
from flask_sqlalchemy import sqlalchemy
app = Flask(__name__, static_url_path='', static_folder='static')
app.config['SQLACHLEMY_DATABASE_URI'] = 'mssql://LAPTOP-GNBBOVKT/SQLEXPRESS/OIS?trusted_connection=yes'
db = sqlalchemy(app)

class Country(db.Model):
    __tablename__ = 'example'
    id = db.Column('Country_ID', db.Integer, primary_key=True)
    code = db.Column('Country_Code', db.String)

@app.route('/test')
def test():
    allCountries = Country.query.all()
    return jsonify(allCountries)

但我得到了错误:

TypeError: 'module' 对象不可调用atdb = sqlalchemy(app)

编辑:通过将 sqlalchemy 更改为 SQLAlchemy 来修复错误,但现在我得到了

UserWarning: Neither SQLALCHEMY_DATABASE_URI nor SQLALCHEMY_BINDS is set. Defaulting SQLALCHEMY_DATABASE_URI to "sqlite:///:memory:".

可能是因为它没有连接到数据库。

编辑:最终修复它的是导入 pyodbc 并更改 URI 行:

app.config['SQLALCHEMY_DATABASE_URI'] = 'mssql+pyodbc://@' + 'LAPTOP-GNBBOVKT\\SQLEXPRESS' + '/' + 'OIS' + '?trusted_connection=yes&driver=ODBC+Driver+13+for+SQL+Server'

【问题讨论】:

  • 您使用的是用户名和密码吗?
  • 我希望它与此处指定的 Windows 身份验证一起使用:stackoverflow.com/a/24085353/12636797
  • 在您提到的帖子中,请查看 DoloMike 对已接受答案的评论。

标签: sql-server flask sqlalchemy flask-sqlalchemy


【解决方案1】:

你应该用db = SQLAlchemy ()初始化db对象

还将您的导入更改为from flask_sqlaclhemy import SQLAlchemy

编辑: 有一个错字 更改为app.config['SQLALCHEMY_DATABASE_URI'] 有错别字

【讨论】:

  • 修复了,错误,但 URI 似乎仍然是错误的。
  • 已编辑答案。请检查
  • 修正了错字现在我得到sqlalchemy.exc.InterfaceError: (pyodbc.InterfaceError) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0)
  • 是否有特定的原因要使用 mssql。我正在检查问题
  • 数据现在存在于一个每天更新的mssql db中,所以我不能选择数据库。
猜你喜欢
  • 1970-01-01
  • 2016-11-04
  • 1970-01-01
  • 2014-07-27
  • 2013-09-07
  • 2020-09-30
  • 2011-04-10
  • 2014-07-15
相关资源
最近更新 更多