python - 在 SQLAlchemy 中使用声明性基类而不是表对象的区别和好处
问题描述
我无法理解在 SQLAlchemy 中使用声明性类的好处。
据我了解,ORM 是将数据库表的概念应用于 OOP 的类系统的一种方式。但是我不明白为什么表类还没有满足这个要求。
所以通过一个例子来形成我的问题:
使用这个有什么好处:
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
from sqlalchemy import Column, Integer, String
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String(16))
fullname = Column(String(60))
nickname = Column(String(50))
而不是这个:
from sqlalchemy import *
metadata = MetaData()
user = Table('users', metadata,
Column('id', Integer, primary_key=True),
Column('name', String(16)),
Column('fullname ', String(60)),
Column('nickname ', String(50))
)
后者已经是一个类表示,不是吗?为什么我们要在已经存在的表类上构建另一个类?有什么好处?
解决方案
推荐阅读
- aws-lambda - 如何让 python aws lambda 处理程序进行需要很长时间但让 lambda 立即返回 requestId 作为响应的异步调用
- javascript - 带有搜索提示 ReactJs 的多个输入字段
- typescript - 您如何建议合并具有相同属性但值类型不同的接口
- elasticsearch - Elasticsearch 与意义匹配
- gstreamer - 用于将 MPEG TS 输入到 hls 元素的 appsrc 使用哪些上限?
- python - Python tkinter 状态更改创建新窗口
- ssms - SQL Server Management Studio 导入/导出数据在启动时崩溃并显示“数据无效”
- python - 使用 Pandas 清理 Excel 文件
- amazon-web-services - 如何将自定义元数据添加到预签名后 s3 上传?
- json - 如何将自定义组织架构与 Yoast 默认网页架构相关联?