Hello World(SQLAlchemy Core)
此示例显示如何使用 SQLAlchemy Core 创建表,插入数据以及从数据库中进行选择。有关信息,请参阅 SQLAlchemy ORM,请参见此处 。
首先,我们需要连接到我们的数据库。
from sqlalchemy import create_engine
engine = create_engine('sqlite://')
引擎是任何 SQLAlchemy 应用程序的起点。它是实际数据库及其 DBAPI 的基础,通过连接池和方言传递给 SQLAlchemy 应用程序,该方言描述了如何与特定类型的数据库/ DBAPI 组合进行通信。引擎引用方言和连接池,它们一起解释 DBAPI 的模块功能以及数据库的行为。
创建引擎后,我们需要定义和创建表 。
from sqlalchemy import Column, Integer, Text, MetaData, Table
metadata = MetaData()
messages = Table(
'messages', metadata,
Column('id', Integer, primary_key=True),
Column('message', Text),
)
messages.create(bind=engine)
要进一步解释 MetaData 对象,请参阅以下文档:
Table 对象及其关联子对象的集合称为数据库元数据
我们使用 Table 构造在名为 MetaData 的目录中定义所有表,该构造类似于常规 SQL CREATE TABLE 语句。
现在我们已经定义和创建了表,我们可以开始插入数据了! 插入涉及两个步骤。编写插入构造,并执行最终查询。
insert_message = messages.insert().values(message='Hello, World!')
engine.execute(insert_message)
现在我们有了数据,我们可以使用 select 函数来查询数据。列对象可用作 Table 对象上 c 属性的命名属性,从而可以直接选择列。执行此 select 语句将返回一个 ResultProxy
对象,该对象可以访问一些方法, fetchone()
, fetchall()
和 fetchmany()
,所有这些方法都返回在 select 语句中查询的多个数据库行。
from sqlalchemy import select
stmt = select([messages.c.message])
message, = engine.execute(stmt).fetchone()
print(message)
Hello, World!
就是这样! 有关更多示例和信息,请参阅 SQLAlchemy SQL 表达式教程 。