如何从 SQLAlchemy 获取列名?
在本文中,我们将讨论如何在Python中使用 SQLAlchemy 获取列名。
SQLAlchemy 是一个开源 SQL 工具包和对象关系映射器,用于在 MIT 许可下发布的Python编程语言。它为应用程序提供了 SQL 的全部功能和灵活性。为了继续阅读本文,我们需要在我们的系统中安装 sqlalchemy 和任何数据库。为了理解本文,我们使用了 MySQL 数据库。
使用 pip 安装 sqlalchemy:
pip install sqlalchemy
对于我们的示例,我们已经在 Geeks4Geeks 模式名称下创建了一个 Profile 表,我们将使用它:
我们可以通过不同的方式获取 SQLAlchemy 中的列名。
方法一:使用keys()
在这里,我们将使用 key() 方法来获取获取列名。它返回一个可迭代的视图,该视图产生将由每一行表示的字符串键。
Syntax: sqlalchemy.engine.Result.keys()
Python
import sqlalchemy as db
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
# DEFINE THE ENGINE (CONNECTION OBJECT)
engine = db.create_engine(
"mysql+pymysql://root:password@localhost/Geeks4Geeks")
# CREATE THE TABLE MODEL TO USE IT FOR QUERYING
class Profile(Base):
__tablename__ = 'profile'
email = db.Column(db.String(50), primary_key=True)
name = db.Column(db.String(100))
contact = db.Column(db.Integer)
# PREPARING SQLALCHEMY QUERY
with engine.connect() as conn:
result = conn.execute(
db.select([Profile.email, Profile.name,
Profile.contact]))
# VIEW THE COLUMN NAMES
print(result.keys())
Python
import sqlalchemy as db
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
# DEFINE THE ENGINE (CONNECTIO OBJECT)
engine = db.create_engine(
"mysql+pymysql://root:password@localhost/Geeks4Geeks")
# CREATE THE TABLE MODEL TO USE IT FOR QUERYING
class Profile(Base):
__tablename__ = 'profile'
email = db.Column(db.String(50), primary_key=True)
name = db.Column(db.String(100))
contact = db.Column(db.Integer)
# PREPARING SQLALCHEMY QUERY
with engine.connect() as conn:
result = conn.execute(
db.select([Profile.email, Profile.name,
Profile.contact]))
# VIEW THE COLUMN NAMES
print(result._metadata.keys)
输出:
在上面的示例中,我们使用 SQLAlchemy ORM 创建了一个 Profile 表。
- 首先,对引擎进行配置,使其可用于执行 SQL 事务。
- 然后,Profile 表以 ORM 类的形式定义。
- 使用 sqlalchemy 引擎,我们正在查询 Profile 表以从表中选择列 email、name 和 contact 的所有记录。信息存储在结果变量中。此变量保存从 Profile 表中提取的列名和记录。结果变量的数据类型是 sqlalchemy.engine.Result。
- 要访问列名,我们可以在结果上使用方法keys() 。它返回列名列表。
- 因为我们只查询了三列,所以我们也可以在输出中查看相同的列。
方法二:使用表元数据
这将返回表元数据的“键”。
Syntax: sqlalchemy.schema.Table.key
Python
import sqlalchemy as db
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
# DEFINE THE ENGINE (CONNECTIO OBJECT)
engine = db.create_engine(
"mysql+pymysql://root:password@localhost/Geeks4Geeks")
# CREATE THE TABLE MODEL TO USE IT FOR QUERYING
class Profile(Base):
__tablename__ = 'profile'
email = db.Column(db.String(50), primary_key=True)
name = db.Column(db.String(100))
contact = db.Column(db.Integer)
# PREPARING SQLALCHEMY QUERY
with engine.connect() as conn:
result = conn.execute(
db.select([Profile.email, Profile.name,
Profile.contact]))
# VIEW THE COLUMN NAMES
print(result._metadata.keys)
输出: