跳到主要内容

SQLAlchemy 连接 seekdb 示例程序

本文将介绍如何使用 SQLAlchemy 连接 seekdb,实现基本的数据库操作,包括创建表、插入数据、更新数据和查询数据等。

前提条件

  • 您已安装 Python 3.x 和 pip。
  • 您已安装 seekdb。

操作步骤

  1. 获取 seekdb 连接串。
  2. 安装 SQLAlchemy 库。
  3. 编写 test.py 文件,填入数据库连接信息。
  4. 运行 test.py 文件。

步骤一:获取 seekdb 连接串

联系 seekdb 部署人员或者管理员获取相应的数据库连接串。

mysql -h$host -P$port -u$user_name -p$password -D$database_name

参数说明:

  • $host:提供 seekdb 的连接 IP。应该被实际的 IP 替换,也可以使用本地 IP 及 127.0.0.1。
  • $port:提供 seekdb 接端口。应该被实际的端口替换,默认是 2881,在部署 seekdb 时可自定义。
  • $database_name:需要访问的数据库名称。
  • $user_name:提供连接账户。格式:用户名
  • $password:提供账户密码。

更多连接串的信息,请参见 通过 MySQL 客户端连接 seekdb

示例如下:

mysql -hxxx.xxx.xxx.xxx -P2881 -uroot -p****** -Dtest

步骤二:安装 SQLAlchemy 库

SQLAlchemy 是 Python 中最流行的 ORM(对象关系映射)库之一,它提供了 SQL 工具包和 ORM 系统,可以简化数据库操作。SQLAlchemy 支持多种数据库后端,包括 MySQL、PostgreSQL、SQLite 等。

打开命令提示符或 PowerShell 终端,运行以下命令,安装 SQLAlchemy 库。

pip install sqlalchemy mysqlclient

安装完成后,可以通过以下命令验证安装是否成功:

pip list | grep SQLAlchemy
信息

SQLAlchemy 是一个功能强大的 ORM 库,它提供了两种使用方式:Core 和 ORM。Core 提供了 SQL 表达式语言,而 ORM 提供了对象关系映射功能。本文示例主要使用 ORM 方式。

步骤三:编写 test.py 文件,填入数据库连接信息

根据 步骤一:获取 seekdb 连接串 中的信息编写 test.py 文件,填入数据库连接信息。

  1. 创建一个名为 test.py 的文件。

  2. test.py 文件中填入以下内容,并根据实际情况修改数据库连接信息。

    test.py 文件内容示例如下:

    from sqlalchemy import create_engine, Column, Integer, String, MetaData, Table
    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy.orm import sessionmaker

    # 数据库连接信息
    DB_USER = 'test_user001@mysql001'
    DB_PASSWORD = '******'
    DB_HOST = 'xxx.xxx.xxx.xxx'
    DB_PORT = 2881
    DB_NAME = 'test'

    # 创建数据库连接 URL
    DATABASE_URL = f"mysql+mysqldb://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}"

    # 创建引擎
    engine = create_engine(DATABASE_URL)

    # 创建基类
    Base = declarative_base()

    # 定义模型
    class User(Base):
    __tablename__ = 'users'

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

    def __repr__(self):
    return f"<User(id={self.id}, name='{self.name}', age={self.age})>"

    # 创建表
    Base.metadata.create_all(engine)

    # 创建会话
    Session = sessionmaker(bind=engine)
    session = Session()

    # 插入数据
    new_users = [
    User(name='John', age=20),
    User(name='Lucy', age=25),
    User(name='Tom', age=30)
    ]
    session.add_all(new_users)
    session.commit()

    # 更新数据
    user = session.query(User).filter_by(name='Lucy').first()
    if user:
    user.age = 26
    session.commit()

    # 查询数据
    users = session.query(User).all()
    for user in users:
    print(user)

    # 关闭会话
    session.close()

步骤四:运行 test.py 文件

打开命令提示符或 PowerShell 终端,运行 test.py 文件,查询数据并输出结果。

  1. 进入到 test.py 文件所在的目录。

    示例如下:

    cd D:\demo\demo
  2. 运行 test.py 文件。

    示例如下:

    python test.py

    返回结果如下:

    <User(id=1, name='John', age=20)>
    <User(id=2, name='Lucy', age=26)>
    <User(id=3, name='Tom', age=30)>

错误处理

在使用 SQLAlchemy 连接 seekdb 时,可能会遇到各种错误。以下是一些常见的错误及其处理方法:

  1. 连接错误:如果无法连接到数据库,请检查连接参数是否正确,包括主机名、端口、用户名、密码和数据库名。

  2. 权限错误:如果遇到权限相关的错误,请确保用户拥有足够的权限来执行所需的操作。

  3. SQL 语法错误:如果 SQL 语句有语法错误,请检查 SQL 语句的语法是否正确。

  4. 数据类型错误:如果插入的数据类型与表定义不匹配,请确保插入的数据类型正确。

在代码中,我们可以使用 try-except 语句来捕获和处理这些错误,确保程序在遇到错误时能够优雅地处理,而不是直接崩溃。同时,我们可以使用 logging 模块记录错误信息,方便调试和问题排查。

相关文档