首页 > 解决方案 > SQLAlchemy - SQL Server 连接

问题描述

我已经将 postgresql 与 SQLAlchemy 一起使用,但我试图获取在 SQL Server 上运行的 Azure 中的数据库。我无法连接,也无法真正弄清楚原因。我进行了相当多的搜索,发现大多数文章都指向我使用 ORM,create_engine但我似乎无法让它与使用 ORM 一起工作。这是我当前的代码:

例外

sqlalchemy.exc.NoSuchModuleError:无法加载插件:sqlalchemy.dialects:sqlserver

from flask import Flask
from models import db, People

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlserver://<connectionString>'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db.init_app(app)

@app.route('/')
def hello_world():
    #Exception here
    people = People.query.filter_by(birthYear=12).all()
    return 'Hello World!'


if __name__ == '__main__':
    app.run()

Azure 为我提供了 4 个不同的连接字符串:

有什么方法可以让 SQLAlchemy 与 SQL Server 一起工作?

https://docs.sqlalchemy.org/en/latest/dialects/mssql.html

标签: pythonazuresqlalchemy

解决方案


SQLAlchemy 只是一个高级 ORM 库,与 db 的底层通信由 dialect/DBAPI 库完成。

假设您打算使用pymssql,您需要先安装pymssql,并修改连接字符串

mssql+pymssql://<username>:<password>@<host>:<port>/<database_name>/?charset=utf8

此驱动程序的现代版本与来自 Linux 的 SQL Server 和 FreeTDS 配合得非常好,强烈推荐使用。


推荐阅读