5.4 Python数据库框架

大多数数据库引擎都有对应的 Python 包,包括开源包和商业包。Flask 并不限制你使用 何种类型的数据库包,因此你可以根据自己的喜好选择使用 MySQL、Postgres、SQLite、 Redis、MongoDB、CouchDB 或 DynamoDB。

如果这些都无法满足需求,还有一些数据库抽象层代码包供选择,例如 SQLAlchemy 和 MongoEngine。你可以使用这些抽象包直接处理高等级的 Python 对象,而不用处理如表、 文档或查询语言之类的数据库实体。

选择数据库框架时,要考虑很多因素。

易用性

如果直接比较数据库引擎和数据库抽象层,显然后者取胜。抽象层,也称为对象关系映 射器(ORM)或对象文档映射器(ODM),在用户不知不觉的情况下把高层的面向对 象操作转换成低层的数据库指令。

性能

ORM 和 ODM 把对象业务转换成数据库业务时会有一定的损耗。多数情况下,这种性 能的降低微不足道,但也不一定都是如此。一般情况下,ORM 和 ODM 对生产率的提 升远远超过了这一丁点儿的性能降低,所以性能降低这个理由不足以说服用户完全放弃 ORM 和 ODM。真正的关键点在于选择一个能直接操作低层数据库的抽象层,以防特 定的操作需要直接使用数据库原生指令优化。

可移植性

选择数据库时,必须考虑其是否能在你的开发平台和生产平台中使用。例如,如果你打算利用云平台托管应用,就要知道这个云服务提供了哪些数据库可供选择。

可移植性还针对 ORM 和 ODM。尽管有些框架只为一种数据库引擎提供抽象层,但其 他框架可能做了更高层的抽象,支持不同的数据库引擎,而且都使用相同的面向对象接 口。SQLAlchemy ORM 就是一个很好的例子,它支持很多关系型数据库引擎,包括流 行的 MySQL、Postgres 和 SQLite。

FLask 集成度

选择数据库框架时,不一定非得选择已经集成了 Flask 的框架,但选择这样的框架可以节省编写集成代码的时间。使用集成了 Flask 的框架可以简化配置和操作,所以专门为 Flask 开发的扩展是你的首选。

基于以上因素,本书选择使用的数据库框架是 Flask-SQLAlchemy,这个 Flask 扩展包装 了 SQLAlchemy 框架。

《基于Python的Web应用开发实战(第二版)》

转载于:https://www.cnblogs.com/hl001/p/10234258.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值