【SQLAlchemy】官方文档教程学习1:概述与数据库连接

SQLAlchemy ORM

SQLAlchemy对象关系映射器提供了一种将用户定义的Python类与数据库表关联起来的方法,以及将这些类(对象)的实例与相应表中的行关联起来的方法。它包括一个透明地同步对象及其相关行(称为工作单元)之间的所有状态变化的系统,以及一个用用户定义的类和它们之间定义的关系来表达数据库查询的系统。

ORM是与SQLAlchemy表达式语言相对应的,ORM是在其基础上构建的。SQL表达式语言在SQL表达式语言教程(1.x API)中介绍的SQL表达式语言是不加意见地直接表示关系型数据库的原始构造的系统,而ORM则呈现了一种高层次和抽象化的使用模式,它本身就是表达式语言的应用实例。

虽然ORM和表达式语言的使用模式有重合之处,但其相似之处比起初看起来更肤浅。其中一种是从用户定义的领域模型的角度来处理数据的结构和内容,该模型从其底层存储模型中透明地持久化和刷新。另一种是从文字模式和SQL表达式的角度来处理它,这些表达式被明确地组成了由数据库单独消费的消息。

一个成功的应用程序可能只使用对象关系映射器来构造。在高级情况下,用ORM构建的应用程序可能会在某些需要特定数据库交互的领域直接偶尔使用表达式语言。

下面的教程是以doctest格式进行的,也就是说,每一行>>>代表你可以在Python命令提示符下键入的内容,下面的文字代表预期的返回值。

Connecting

在本教程中,我们将使用一个仅有内存的SQLite数据库。为了连接,我们使用[create_engine()]

from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:', echo=True)

echo标志是设置SQLAlchemy日志的捷径,它是通过Python的标准logging模块来实现的。启用它后,我们将看到所有生成的SQL。如果希望生成的输出少一些,可以将其设置为False

即:echo = True|False:是否打印SQL语句

create_engine()的返回值是Engine的一个实例,它代表了数据库的核心接口,通过term-dialect进行调整,处理数据库的细节和DBAPI的使用。在这种情况下,SQLite方言将向Python内置的sqlite3模块解释指令。

第一次调用类似Engine.execute()Engine.connect()这样的方法时,Engine会建立一个真正的DBAPI连接到数据库,然后用它来发出SQL。在使用ORM的时候,我们一般不会直接使用Engine创建后,而是由ORM在幕后使用,我们很快就会看到。

连接mysql

from sqlalchemy import create_engine

engine = create_engine(
    ''mysql+pymysql://[用户名]:[密码]@[HOST]:[port]/[database]',
    echo = True
)

例如:

from sqlalchemy import create_engine
engine = create_engine(
    'mysql+pymysql://root:12345@localhost:3306/db_sqlalchemy_test',
    echo=False
)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值