在使用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
