Python 在SQLAlchemy中使用声明性基类而不是表对象的区别和好处
我在理解SQLAlchemy中使用声明性类的好处时遇到了问题 据我所知,ORM是一种将数据库表的概念应用于OOP类系统的方法。然而,我不明白为什么table类不能满足这个要求 通过一个例子来形成我的问题: 使用此选项的好处是什么:Python 在SQLAlchemy中使用声明性基类而不是表对象的区别和好处,python,class,sqlalchemy,declarative,Python,Class,Sqlalchemy,Declarative,我在理解SQLAlchemy中使用声明性类的好处时遇到了问题 据我所知,ORM是一种将数据库表的概念应用于OOP类系统的方法。然而,我不明白为什么table类不能满足这个要求 通过一个例子来形成我的问题: 使用此选项的好处是什么: from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() from sqlalchemy import Column, Integer, String clas
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))
)
后者已经是类表示了,不是吗?为什么我们要在已经存在的表类之上构建另一个类?有什么好处?“后一个已经是类表示了,不是吗?”-不,
表
对象是SQL表的表示,用于形成查询等。啊,好的-所以用户是一个对象,而用户是一个类。我为类用户创建的任何对象都将是对象用户中的一个条目。因此,好处是在第一种情况下,表中的行通过对象表示。“后一种已经是类表示了,不是吗?”-不,表
对象是SQL表的表示,用于形成查询等。啊,好的-所以用户是对象,而用户是类。我为类用户创建的任何对象都将是对象用户中的一个条目。因此,在第一种情况下,表中的行是通过对象表示的。