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 表达式教程