【Flask】4個session(四)資料庫會話物件
阿新 • • 發佈:2018-11-22
在前面的部落格總結了四個session中的三個:
❶【Flask】4個session(一)狀態保持及請求/應用向下文
❸【Flask】4個session(三)Flask_session擴充套件包
今天抽出時間把第四個寫完,並總結一下他們之間的關係。
這第四個session是依存於Flask_SQLAlchemy的,所以我們從SQLAlchemy說起
❶什麼是SQLAlchemy?
答:SQLAlchemy是一個關係型資料庫框架,它提供了高層的 ORM 和底層的原生資料庫的操作,讓開發者不用直接和 SQL 語句打交道,而是通過 Python 物件來操作資料庫,在捨棄一些效能開銷的同時,換來的是開發效率的較大提升。
一句話:就是對資料庫的抽象!
那在Flask中SQLAlchemy是怎麼實現的呢?↙
❷什麼是Flask-SQLAlchemy?
答:Flask-SQLAlchemy是一個簡化了 SQLAlchemy 操作的flask擴充套件,是SQLAlchemy的具體實現,封裝了對資料庫的基本操作。
舉例:如果說動物園是SQLAlchemy,那Flask-SQLAlchemy只是其中的一隻。
Flask-SQLAlchemy詳細內容見☞【Flask】什麼是Flask-SQLAlchemy?
❸應用舉例
指定資料庫:
# 配置連線資料庫
SQLALCHEMY_DATABASE_URI = 'mysql://root: [email protected]/資料庫名'
SQLALCHEMY_TRACK_MODIFICATIONS = False
匯入,並例項化sqlalchemy物件
# 匯入flask_sqlalchemy
from flask_sqlalchemy import SQLAlchemy
# 例項化sqlalchemy物件
db = SQLAlchemy()
具體使用:
# 提交資料到資料庫中 try: # 儲存資料 db.session.add(news) # 提交 db.session.commit() except Exception as e: current_app.logger.error(e) # 回滾 db.session.rollback()
幾個session之間的關係圖:
1、2、3中的“session”互相配合實現了狀態保持,4中的資料庫回話物件是獨立的,與狀態保持無關。