一. Python数据库框架
大多数数据库引擎都有对应的Python包,如:MySQL、SQLite、Redis、MongoDB等。此外还有一些数据库抽象层代码包供选择,如:SQLAlchemy和MongoEngine。选择数据库框架式,要考虑很多因素:
- 易用性
抽象层也成为对象关系映射(ORM)或对象文档映射(ODM),可以把高层的面向对象操作转换为底层的数据库指令。因此,相比数据库引擎,更具易用性。
- 性能
ORM和ODM把对象转换为数据库业务时会有一定损耗,但它们对生产效率的提升远远超过了这一丁点儿性能的降低。
- 可移植性
选择数据库时必须考虑其是否能在你的开发平台和生产平台中使用。可移植性还针对ORM和ODM,有些框架只为一种数据库引擎提供抽象层。但其它框架可能做了更高层的抽象,支持不同的数据库引擎,并使用相同的现象对象接口。如SQLAlchemy ORM支持MySQL/Postgres/SQLite数据库引擎。
- Flask集成度
使用集成了Flask的数据库框架可以简化配置和操作,《Flask Web开发》一书选择的数据库框架是Flask-SQLAlchemy,这个Flask扩展包装了SQLAlchemy框架。
二. 使用Flask-SQLAlchemy框架管理数据库
SQLAlchemy提供了高层ORM,也提供了使用数据库原生SQL的底层功能,Flask-SQLAlchemy的安装:
pip install flask-sqlalchemy
Flask-SQLAlchemy数据库URL
数据库引擎 | URL |
MySQL | mysql://username:password@hostname/database |
Postgres | postgresql://username:password@hostname/database |
SQLite(Linux/macOS) | sqlite:absolute/path/to/database |
SQLite(Wondows) | sqlite:///c:/absolute/path/to/database |
SQLite数据库没有服务器,因此不用指定hostname/passwordd/username&#x