📜  SQLAlchemy核心-连接到数据库(1)

📅  最后修改于: 2023-12-03 15:20:18.080000             🧑  作者: Mango

SQLAlchemy核心-连接到数据库

SQLAlchemy是一个Python SQL工具包,可以实现SQL表达式、驱动程序和对象关系映射器。该工具包支持多种数据库,包括PostgreSQL,MySQL和SQLite。这里我们将介绍如何使用SQLAlchemy核心连接到数据库。

安装SQLAlchemy
pip install sqlalchemy
连接到数据库

使用SQLAlchemy的核心是创建数据库连接,可以使用create_engine()方法创建一个数据库引擎。下面是一个连接到SQLite数据库的示例:

from sqlalchemy import create_engine

engine = create_engine('sqlite:///example.db')

这里我们使用了SQLite数据库,并创建了一个名为example.db的数据库文件。连接字符串的格式是:

<dialect>://<user>:<password>@<host>:<port>/<database>

其中,dialect指的是数据库类型(例如sqlite),user是用户名,password是密码,host是主机名,port是端口号,database是数据库名。连接字符串还可以包含一些可选参数,例如charset、use_unicode等。

创建表格

连接到数据库之后,可以创建表格。此处我们将介绍如何使用SQLAlchemy的核心创建表格,但还有更高级的方法使用SQLAlchemy的ORM创建表格。这里我们在example.db数据库中创建一个名为users的表格,包含id和name两个字段:

from sqlalchemy import Table, Column, Integer, String, MetaData

metadata = MetaData()

users = Table('users', metadata,
    Column('id', Integer, primary_key=True),
    Column('name', String)
)

metadata.create_all(engine)

首先需要先创建一个元数据对象metadata,然后创建一个Table对象表示表格,其中包含表格的名字和表格中的字段。在这里,我们创建了一个名为users的表格,其中包含id和name两个字段。然后使用create_all()方法创建表格。

插入数据

创建表格之后,可以向表格中插入数据。这里我们将向表格中插入一条数据:

conn = engine.connect()

conn.execute(users.insert(), [{'name': 'Alice'}])

conn变量表示了一个数据库连接,使用execute()方法执行SQL语句,这里使用了insert()方法表示插入操作,并且传入了一个字典,该字典包含了要插入的数据(例如{name: 'Alice'})。

查询数据

查询数据可以使用SQLAlchemy的查询API,例如:

result = conn.execute(users.select())

for row in result:
    print(row['id'], row['name'])

这里我们使用select()方法查询表格中的数据,并使用execute()方法执行查询。查询结果可以使用for循环进行遍历,每次遍历返回一行数据,可以使用row[column_name]获取数据。

结束连接

使用完数据库连接之后应该关闭连接,例如:

conn.close()

可以使用with语句连接数据库,避免忘记关闭数据库连接:

with engine.connect() as conn:
    conn.execute(...)
总结

本文介绍了如何使用SQLAlchemy核心连接到数据库,并创建表格、插入数据、查询数据等操作。SQLAlchemy还提供了更高级的ORM操作,请参考SQLAlchemy官方文档了解更多信息。