Flask-SQLAlchemy 中 db.Column 和 Column 有什么区别?

4

我正在创建一个新的Flask应用程序,注意到即使在其他项目中也会交替使用db.ColumnColumn。那么何时使用其中之一?

id = db.Column(Integer(), primary_key=True)

vs

id = Column(Integer(), primary_key=True)
1个回答

11
似乎这是一个便利问题,没有任何区别。
>>> from flask_sqlalchemy import SQLAlchemy
>>> db = SQLAlchemy()
>>> from sqlalchemy import Column
>>> db.Column is Column
True

在类SQLAlchemy的文档字符串中,您可能会看到此注释

此类还提供了从sqlalchemysqlalchemy.orm模块访问所有SQLAlchemy函数和类的方法。

这些名称由辅助函数_include_sqlalchemy提供,该函数在SQLAlchemy的初始化程序中被调用。也许这是一个有问题的设计选择,无视Python之禅第13条原则,只是为了减少模块顶部的导入语句数量?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接