【SQLAlChemy】如何连接数据库?

发布于:2024-06-15 ⋅ 阅读:(144) ⋅ 点赞:(0)

使用SQLAlChemy连接数据库

导入包

首先,导入创建数据库引擎的包。

from sqlalchemy import create_engine

编写数据库配置

SQLALCHEMY_DATABASE_URL = "mysql://root:123456789@127.0.0.1:3306/tortoise"

字段解释:

  • mysql::这是数据库方言和驱动的名称。在本例中,我们使用的是 MySQL 数据库。
  • root::这是连接数据库的用户名。
  • 123456789: 这是连接数据库的密码。
  • @127.0.0.1::这是数据库服务器的 IP 地址。在本例中,数据库服务器位于同一台机器上,所以我们使用了本地主机 IP 地址 127.0.0.1。
  • 3306::这是数据库服务器的端口号。对于 MySQL 数据库,缺省端口号是 3306。
  • /tortoise:这是数据库的名称。在本例中,我们将连接到名为 tortoise 的数据库。

创建数据库引擎

传入数据库配置连接,来创建数据库引擎。

# 创建数据库引擎
engine = create_engine(
    SQLALCHEMY_DATABASE_URL,
)

创建测试连接

# 创建连接
with engine.connect() as connection:
    rs = connection.execute(text('select * from user_account'))
    print(rs)
    res = rs.fetchall()
    for r in res:
        print(r)

输出:

<sqlalchemy.engine.cursor.CursorResult object at 0x1059b49a0>
(4, 'yan', 'xuecan')
(5, 'yan', 'pengbo')
(6, 'zhang', 'zhangsan')
(7, 'zhang', 'xiaoming')
(10, 'zhang', 'xin')
(14, 'li', 'ming')
(15, 'yao', 'zhetian')
(16, 'fan', 'sixian')
(17, 'test_name', 'test_fullname')

数据库表内容:

注意

在执行 SQL 语句时,必须加上 text,否则会报以下错误sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: 'xxxxxxx'。因为你尝试执行一个字符串,而不是一个 SQLAlchemy 的查询对象。

如果你想执行原生的 SQL 语句,你需要使用 text 函数来构建一个可执行的 SQL 文本对象。


网站公告

今日签到

点亮在社区的每一天
去签到