04 Python Flask 教學06 Python 資料庫教學10 所有文章

[Flask教學] Flask-SQLAlchemy 資料庫連線&設定入門(一)

一. 前言

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 資料庫連線&設定入門 結束囉,感謝收看!

有關 Max行銷誌 的最新文章,都會發佈在 Max行銷誌的 Facebook 粉絲專頁,如果想看最新更新,還請您按讚或是追蹤唷!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *