【发布时间】:2022-09-23 02:31:57
【问题描述】:
我有一个 Python webapp,它使用 SQLalchemy 迁移连接到 SQL Server 数据库。
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager
import urllib
SQLALCHEMY_TRACK_MODIFICATIONS = False
app = Flask(__name__)
app.config[\'SECRET_KEY\'] = \'*******************\'
params = urllib.parse.quote_plus(\'DRIVER={SQL Server};SERVER=SOMESERVER;DATABASE=PD;Trusted_Connection=yes;\')
app.config[\'SQLALCHEMY_DATABASE_URI\'] = \"mssql+pyodbc:///?odbc_connect=%s\" % params
db = SQLAlchemy(app)
现在数据库有一些带有一些值的表,我有一个注册页面和一个应该使用它的登录页面。 但我只知道我可以使用对表格进行建模的 model.py 文件,这样我就可以像这样使用它们:
class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(20), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
image_file = db.Column(db.String(20), nullable=False, default=\'default.jpg\')
password = db.Column(db.String(60), nullable=False)
posts = db.relationship(\'Post\', backref=\'author\', lazy=True)
def __repr__(self):
return f\"User(\'{self.username}\', \'{self.email}\', \'{self.image_file}\')\"
当我运行这些文件时,webapp 正常启动,但是当我输入一个表单(登录或注册)时,我得到了这个错误,我想这表明在数据库中找不到表 \"User\"。
sqlalchemy.exc.InterfaceError: (pyodbc.InterfaceError) (\'IM002\', \'[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)\') (此错误的背景:https://sqlalche.me/e/14/rvf5)
那么我是否应该将类名从 User 更改为我在数据库中的表名,然后使用我在 DB 中的名称来命名所有字段?或者是否有其他方法可以调用我在 DB 中的表并让它填充“User”类(隐喻),以便在导入 User 时使用我的 DB 表?
-
问题是数据库uri。不幸的是,我无法访问 MSSQL,所以我不能确切地说出它有什么问题。
标签: python sql-server sqlalchemy flask-sqlalchemy sqlalchemy-migrate