📜  在Python中使用 SQLAlchemy 连接到 SQL 数据库(1)

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

在Python中使用 SQLAlchemy 连接到 SQL 数据库

SQLAlchemy 是一个 Python 的数据库 ORM 工具,它能够让程序员在 Python 中方便地连接到 SQL 数据库并进行操作。它提供了许多高级特性,例如基于 ORM 的数据库访问,SQL 式查询构造器以及自动生成 SQL 语句等。

安装 SQLAlchemy

在开始使用 SQLAlchemy 之前,我们需要先安装它。可以通过以下命令安装:

pip install SQLAlchemy
连接到 SQL 数据库

使用 SQLAlchemy 连接到 SQL 数据库需要先建立一个数据库连接。我们可以通过 create_engine() 方法来创建一个数据库引擎,这个引擎可以连接到我们的数据库。

例如,如果我们要连接到 MySQL 数据库,可以使用如下代码:

from sqlalchemy import create_engine

engine = create_engine('mysql://user:password@host:port/database')

其中,userpassword 分别为数据库的用户名和密码,hostport 分别为数据库所在机器的地址和端口号,database 为要连接的数据库名称。

如果我们要连接到 SQLite 数据库,则可以这样做:

engine = create_engine('sqlite:///path/to/database.db')

其中,路径指定为 sqlite:/// 后面的文件路径。

一旦我们创建了数据库引擎,就可以使用 connect() 方法连接到数据库,如下所示:

conn = engine.connect()
执行 SQL 命令

使用 SQLAlchemy 执行 SQL 命令非常简单。只需要将 SQL 语句传递给 execute() 方法即可。例如,执行查询语句可以这样做:

result = conn.execute('SELECT * FROM my_table')

执行修改语句可以这样做:

conn.execute('UPDATE my_table SET column1 = value1 WHERE column2 = value2')
使用 ORM 进行数据库操作

除了直接执行 SQL 命令外,我们还可以使用 ORM 进行数据库操作。ORM 是对象关系映射(Object Relational Mapping)的缩写,它通过将数据库中的表映射到 Python 中的类,使得我们可以通过操作 Python 对象来操作数据库。

下面是一个使用 ORM 进行数据库操作的示例。假设我们有以下的表定义:

CREATE TABLE my_table (
    id INTEGER PRIMARY KEY,
    name VARCHAR(50),
    age INTEGER
)

那么我们可以这样定义一个与之对应的 Python 类:

from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class MyTable(Base):
    __tablename__ = 'my_table'

    id = Column(Integer, primary_key=True)
    name = Column(String(50))
    age = Column(Integer)

这个类中的属性与表中的列对应起来。我们可以使用 SQLAlchemy 提供的查询 API 来进行查询。例如,查询所有记录可以这样做:

my_data = session.query(MyTable).all()

在这里,session 是一个 SQLAlchemy 的会话对象,我们可以通过 sessionmaker 创建它:

from sqlalchemy.orm import sessionmaker

Session = sessionmaker(bind=engine)
session = Session()

在使用完一次会话之后,需要调用 session.close() 方法以关闭会话。如果出现异常,也应该在 except 中关闭会话。

总结

本文介绍了如何使用 SQLAlchemy 连接到 SQL 数据库并执行 SQL 命令和使用 ORM 进行数据库操作。不管是使用 SQL 命令还是 ORM,SQLAlchemy 都使得 Python 连接到 SQL 数据库变得非常容易。如果您正在开发一个需要与 SQL 数据库打交道的 Python 应用,那么 SQLAlchemy 绝对值得尝试。