Flask從入門到精通之使用Flask-SQLAlchemy管理數據庫

  Flask-SQLAlchemy 是一個Flask 擴展,簡化了在Flask 程序中使用SQLAlchemy 的操做。SQLAlchemy 是一個很強大的關係型數據庫框架,支持多種數據庫後臺。SQLAlchemy 提供了高層ORM,也提供了使用數據庫原生SQL 的低層功能。mysql

  和其餘大多數擴展同樣,Flask-SQLAlchemy 也使用pip 安裝:sql

pip install flask-sqlalchemy

  在Flask-SQLAlchemy 中,數據庫使用URL 指定。最流行的數據庫引擎採用的數據庫URL格式以下表:數據庫

MySQL mysql://username:password@hostname/database
Postgres postgresql://username:password@hostname/database
SQLite(Unix) sqlite:////absolute/path/to/database
SQLite(Windows) sqlite:///c:/absolute/path/to/database

  在這些URL 中,hostname 表示MySQL 服務所在的主機,能夠是本地主機(localhost),也能夠是遠程服務器。數據庫服務器上能夠託管多個數據庫,所以database 表示要使用的數據庫名。若是數據庫須要進行認證,username 和password 表示數據庫用戶密令。flask

  SQLite 數據庫不須要使用服務器,所以不用指定hostname、username 和password。URL 中的database 是硬盤上文件的文件名。服務器

  程序使用的數據庫URL 必須保存到Flask 配置對象的SQLALCHEMY_DATABASE_URI 鍵中。配置對象中還有一個頗有用的選項,即SQLALCHEMY_COMMIT_ON_TEARDOWN 鍵,將其設爲True時,每次請求結束後都會自動提交數據庫中的變更。其餘配置選項的做用請參閱Flask-SQLAlchemy 的文檔。下面的例子展現瞭如何初始化及配置一個簡單的MySQL 數據庫app

from flask import Flask
from flask.ext.script import Manager
from flask.ext.sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root@localhost:3306/test?charset=utf8mb4'
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True

db = SQLAlchemy(app)

  db 對象是SQLAlchemy 類的實例,表示程序使用的數據庫,同時還得到了Flask-SQLAlchemy提供的全部功能。框架

相關文章
相關標籤/搜索