📅  最后修改于: 2023-12-03 15:38:56.569000             🧑  作者: Mango
在 SQLAlchemy 中,通过列名从实例中获取值可以使用 getattr()
函数和列对象。
getattr()
函数可以用于获取对象的属性值。在 SQLAlchemy 中,每个列对象都对应一个属性名称,可以直接使用 getattr()
函数来获取对应列的值。
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
username = Column(String)
age = Column(Integer)
email = Column(String)
user = User(id=1, username='Alice', age=20, email='alice@example.com')
age = getattr(user, 'age')
print(age) # 20
在上面的例子中,使用 getattr()
函数获取了 User
对象中 age
列的值,并将其赋值给变量 age
。
除了 getattr()
函数,我们还可以使用列对象进行属性获取。
age = user.age
print(age) # 20
在上面的例子中,我们直接使用 user.age
获取了 User
对象中 age
列的值,并将其赋值给变量 age
。
当使用列对象进行属性获取时,需要注意以下事项:
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
username = Column(String)
age = Column(Integer)
from = Column(String) # 注意这里使用了 Python 关键字
user = User(id=1, username='Alice', age=20, from='China') # 需要使用反引号
country = user.`from`
print(country) # China
通过本文的介绍,你了解了如何通过列名从 SQLAlchemy 实例中获取值。使用 getattr()
函数和列对象都可以实现该功能,具体使用哪种方式可以根据自己的代码风格进行选择。当使用列对象时,需要注意列名称的大小写和是否与 Python 关键字重名。