一. 前言
1. 什麼是 Flask-SQLAlchemy ?
- Flask 本身不支援直接對資料庫操作,而 Flask-SQLAlchemy 是 Flask 的擴充套件,是為了簡化 Flask 開發人員操作資料庫而出現的套件,它適度的包裝了SQLAlchemy。
2. 為什麼使用 Flask-SQLAlchemy ?
- 可支援市面上常用的資料庫 sqlite、Mysql、PostgreSQL、MSSql、Oracle
- 可以使用原生 SQL下指令,也同時支援 ORM 框架來操作資料庫,可以隨時切換很方便。
參考官方文件:
二. 進入 Flask-SQLAlchemy 世界
1. 安裝
1.1 如何安裝 Flask-SQLAlchemy
- 安裝 flask-sqlalchemy 的時候會自動下載相依套件 sqlachemy,不用特別另外安裝。
pip install flask-sqlalchemy
1.2 如何載入 Flask-SQLAlchemy
from flask_sqlalchemy import SQLAlchemy
2. 進行資料庫連線測試
接下來會介紹幾種 Flask-SQLAlchemy 與不同資料庫連線的方式,再切換資料庫上,只需要針對 app.config['SQLALCHEMY_DATABASE_URI']
設定即可!
app.config['SQLALCHEMY_DATABASE_URI'] = [DB_TYPE]+[DB_CONNECTOR]://[USERNAME]:[PASSWORD]@[HOST]:[PORT]/[DB_NAME]
方法一 :使用 sqlite 資料庫連線
# main.py
from flask_sqlalchemy import SQLAlchemy
from flask import Flask
db = SQLAlchemy()
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = "sqlite:////tmp/test.db"
db.init_app(app)
@app.route('/create_db')
def index():
db.create_all()
return 'ok'
if __name__ == "__main__":
app.run()
方法二 :使用 MySQL 資料庫連線
如果使用 MySQL 當連線的資料庫,需要額外安裝 pymsql,安裝指令如下:
$ pip3 install pymysql
連線參數設定: 'SQLALCHEMY_DATABASE_URI'
為與資料庫連線的參數設定,其中 user_name、password 和 IP 請填入自己 Mysql 的資料,而 db_name 則是填入的 database 名稱。
# main.py
from flask_sqlalchemy import SQLAlchemy
from flask import Flask
db = SQLAlchemy()
app = Flask(__name__)
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['SQLALCHEMY_DATABASE_URI'] = "mysql+pymysql://user_name:[email protected]:3306/db_name"
db.init_app(app)
@app.route('/')
def index():
sql_cmd = """
select *
from product
"""
query_data = db.engine.execute(sql_cmd)
print(query_data)
return 'ok'
if __name__ == "__main__":
app.run()
方法三 :使用 PostgreSQL 資料庫連線
如果使用 PostgreSQL 當連線的資料庫,需要額外安裝 psycopg2,安裝指令如下:
$ pip3 install psycopg2-binary
安裝好後,使用方法和剛剛相同,只需針對 app.config['SQLALCHEMY_DATABASE_URI']
內的 url,去做修改就可以囉!
# main.py
from flask_sqlalchemy import SQLAlchemy
from flask import Flask
db = SQLAlchemy()
app = Flask(__name__)
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['SQLALCHEMY_DATABASE_URI'] = "postgresql://user_name:[email protected]:5432/db_name"
db.init_app(app)
@app.route('/')
def index():
sql_cmd = """
select *
from product
"""
query_data = db.engine.execute(sql_cmd)
print(query_data)
return 'ok'
if __name__ == "__main__":
app.run()
3. 運行 python
最後運行 python3 main.py,如過沒有噴錯就代表資料庫連線成功囉~
如果有任何問題,歡迎底下留言或分享唷!
關於 Flask 教學的延伸閱讀:
▍關於 Flask 教學系列目錄:
▍關於 Flask 資料庫 SQLAlchemy 文章:
- [Flask教學] Flask-SQLAlchemy 資料庫連線&設定入門 (一)
- [Flask教學] Flask-SQLAlchemy 資料庫操作-ORM篇 (二)
- [Flask教學] Flask-SQLAlchemy -ORM 一對多關聯篇 (三)
- [Flask教學] Flask-SQLAlchemy -ORM 多對多關聯篇 (四)
- [Flask教學] Flask-SQLAlchemy 資料庫操作-SQL指令篇 (五)
[Flask教學] Flask-SQLAlchemy 資料庫連線&設定入門 結束囉,感謝收看!
有關 Max行銷誌 的最新文章,都會發佈在 Max行銷誌的 Facebook 粉絲專頁,如果想看最新更新,還請您按讚或是追蹤唷!