Flask-SqlAlchemy 声明模型

Flask-SqlAlchemy declaring models

这是 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)

哪一个是正确的或者这些是什么意思?

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

'pure' sqlalchemy 的优点是模型可以更容易地在 flask 应用程序之外使用。

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

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

简单的说,就是处理与flask请求集成的数据库连接代码,并增加一些方便的功能,for.实例,直接从 db 对象

访问 ModelColumnsessionengine 和其他有用的 sqlalchemy 类