在使用flask-sqlalchemy之前要先了解ORM模型,什么叫做ORM模型
一.什么是ORM
ORM
全拼Object-Relation Mapping
. 称为对象-关系映射
-
主要实现模型对象到关系数据库数据的映射.
-
比如下图:把数据库表中每条记录映射为一个模型对象,使用模型对象实现对数据的增删改查
-
ORM图解
ORM的优缺点有哪些?
优点 :
- 对数据库的操作都转化成对类,属性和方法的操作.
- 不用编写各种数据库的
sql语句
. - 不在关注,使用的是
mysql
、oracle
...等数据库
缺点 :
- 相比较直接使用SQL语句操作数据库,有性能损失.
二、flask-sqlalchemy
- SQLALchemy 实际上是对数据库的抽象,让开发者不用直接和 SQL 语句打交道,而是通过 Python 对象来操作数据库,在舍弃一些性能开销的同时,换来的是开发效率的较大提升
- SQLAlchemy是一个关系型数据库框架,它提供了高层的 ORM 和底层的原生数据库的操作。flask-sqlalchemy 是一个简化了 SQLAlchemy 操作的flask扩展。
- 文档地址:http://docs.jinkan.org/docs/flask-sqlalchemy
1. 安装
- 使用pip工具安装 flask-sqlalchemy
pip install flask-sqlalchemy
- 如果连接的是 mysql 数据库,需要安装 mysqldb
pip install flask-mysqldb
提示:如果flask-mysqldb安装不上,安装, pip install pymysql
2. 数据库连接设置
- 设置数据库的链接地址,追踪信息
- 格式:mysql://<用户名>:<密码>@:<端口>/数据库名称
# 数据库链接地址
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:123456@127.0.0.1:3306/test'
# 动态追踪修改设置,如未设置只会提示警告
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
查看映射的sql语句,设置: app.config['SQLALCHEMY_ECHO'] = True
- 配置完成需要去 MySQL 中创建项目所使用的数据库,注意数据库字符格式utf8