gpt4 book ai didi

python - 将 Flask SQLAlchemy 模型与常规 SQLAlchemy 结合使用

转载 作者:太空宇宙 更新时间:2023-11-03 19:48:43 25 4
gpt4 key购买 nike

我有一个无法更改的现有模型,是用 Flask-SQLAlchemy 编写的。我正在编写另一个使用相同模型的应用程序,但不需要 Flask,因此我正在使用常规 SQLAlchemy 模块。不幸的是,我得到了很多: 'AttributeError:模块'DB'没有属性'Model'适用于所有类型的属性 - 例如列、整数等有没有办法将 Flask-SQLAlchemy 与常规 SQLAlchemy 应用程序一起使用?

有一个我的模型类的示例:

class Table_name(Model):
__tablename__ = 'table_name'
id = db.Column(db.INTEGER, primary_key=True)
field1 = db.Column(db.INTEGER, db.ForeignKey('table1.id'), nullable=False)
field2 = db.Column(db.TEXT, nullable=False)
field3 = db.Column(db.INTEGER, db.ForeignKey('table2.id'), nullable=False)
time = db.Column(db.TIMESTAMP, nullable=False)

不幸的是我无法改变它们

最佳答案

我也遇到过同样的困境。如果它很小或一次性,您可以侵入 Flask 应用程序对象而无需真正使用它,如下所示:

from flask_sqlalchemy import SQLAlchemy

throw_away_app = Flask(__name__)
db = SQLAlchemy(throw_away_app)
with self.throw_away_app.app_context():
(perform your db operation)

这对于脚本之类的简单事物来说效果相对较好。但是,如果您在多个项目之间共享模型,并且您根本无法更改现有的 Flask 项目,那么不幸的是,这可能不是一个好的解决方案。

如果是这种情况,并且您根本无法更改现有的代码库,那么创建一个新的模型类并使用普通 SQLAlchemy 连接到现有数据库可能是有意义的。

顺便说一句,对于任何 future 的程序员想知道如何在没有 Flask 的情况下获得 Flask-SQLAlchemy 的一些好处,请考虑:sqlalchemy-mixins .

关于python - 将 Flask SQLAlchemy 模型与常规 SQLAlchemy 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59971641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com