-1

这是 application.py 文件:

db = SQLAlchemy()
migrate = Migrate()

db.app = app
db.init_app(app)
migrate.init_app(app, db)

我发现,我可以用两种不同的方式声明模型。

from application import db


class MyModel(db.Model):
    id = db.Column(db.Integer, primary_key=True)

或者

from sqlalchemy import Model, Column, Integer

class MyModel(Model):
    id = Column(Integer, primary_key=True)

哪一个是正确的或所有这些意味着什么?

4

1 回答 1

0

他们都是正确的。一个使用flask-sqlalchemy,另一个只使用'raw' sqlalchemy。

“纯”sqlalchemy 的优点是模型可以更容易地在烧瓶应用程序之外使用。

如果您不打算在烧瓶外使用它们,请坚持使用烧瓶-sqlalchemy 文档中描述的方法,因为它将为您节省大量时间和精力。

Flask sqlalchemy 只是一个轻量级扩展,可以更轻松地将 sqlalchemy 与 flask 集成。

简单来说,就是处理整合了flask请求的数据库连接代码,并增加了一些方便的功能,for. 直接从对象实例化、访问、、、和Model其他有用的 sqlalchemy 类Columnsessionenginedb

于 2018-02-18T09:17:45.400 回答