请问代码中的 metadatas["auth"]
是什么..
with app.app_context():
db.reflect()
class User:
__table__ = db.metadatas["auth"].tables["user"]
metadatas["auth"]
会返回这个auth
数据库下的MetaData
类,其中存储了多个表对象和它们关联的数据库中的对象。
https://flask-sqlalchemy.palletsprojects.com/en/3.0.x/binds
通常会在项目一开始定义好数据库映射关系,用bind_key(如meta、auth)代表不同的数据库名,后面则为对应的数据库连接配置信息。
SQLALCHEMY_BINDS = {
"meta": "sqlite:////path/to/meta.db",
"auth": {
"url": "mysql://localhost/users",
"pool_recycle": 3600,
},
}
之后定义每个表模型类时,则需指定__bind_key__ = "auth"
,表明表位于哪个数据库之中。
回到问题,上面的链接中有这样一段说明:
The default engine isSQLAlchemy.engine
, and the default metadata isSQLAlchemy.metadata
.SQLAlchemy.engines
andSQLAlchemy.metadatas
are dicts mapping all bind keys.
所以SQLAlchemy.metadatas
是一个类似这样的结构:
{
"meta": sqlalchemy.sql.schema.MetaData,
"auth": sqlalchemy.sql.schema.MetaData,
}
对于MetaData
类:A collection of Table objects and their associated schema constructs
. 它也只是一个集合,存储了多个表对象和它们关联的数据库中的对象
而它有一个tables
属性,会返回A dictionary of Table objects keyed to their name or “table key”
,就是一个表对象key与它对应的表对象的映射
因此这一整行其实就是将auth
对应的数据库内的user
对应的数据表对象赋值给了__table__
变量,省去了一个一个地再去定义表字段的过程。
__table__ = db.metadatas["auth"].tables["user"]
Flask-SQLAlchemy 是一个为您的 Flask 应用增加 SQLAlchemy 支持的扩展。它需要 SQLAlchemy 0.6 或者更高的版本。它致力于简化在 Flask 中 SQLAlchemy 的使用,提供了有用的默认值和额外的助手来更简单地完成常见任务。 Flask-SQLAlchemy 使用起来非常有趣,对于基本应用十分容易使用,并且对于大型项目易于扩展。有关完整的指南,请参
入门 一个高级视图和设置。 Overview | Installation Guide | Frequently Asked Questions | Migration from 1.3 | Glossary | Error Messages | Changelog catalog 教程 SQLAlchemy 1.4 / 2.0 Transitional sqlalchemy2.0作为sqlalc
Python 的这个插件好难懂: 为什么通过框架返回的时候就是:Unexpect System Error - Object of type User is not JSON serializable 有什么好的学习资料么,真的好难懂
问题内容: 我是flask和sqlalchemy的新手,我只是开始在flask应用程序上工作,现在我正在使用sqlalchemy。我想知道使用flask-sqlalchemy与sqlalchemy是否可以获得任何显着的好处。 问题答案: 主要功能是与Flask应用程序正确集成-它创建并配置引擎,连接和会话,并将其配置为与Flask应用程序一起使用。 此设置非常复杂,因为我们需要创建作用域会话并根据
SQLAlchemy 是 Python 编程语言下的一款开源软件。提供了 SQL 工具包及对象关系映射(ORM)工具,使用 MIT 许可证发行。
在Flask Web应用程序中使用原始SQL对数据库执行CRUD操作可能很乏味。 相反,Python工具包SQLAlchemy是一个功能强大的OR映射器,为应用程序开发人员提供了SQL的全部功能和灵活性。 Flask-SQLAlchemy是Flask扩展,它将对SQLAlchemy的支持添加到Flask应用程序中。 什么是ORM(对象关系映射)? 大多数编程语言平台是面向对象的。 另一方面,RDB