Flask連線資料庫

青云Zeo發表於2024-12-11

在Flask框架中,連線資料庫的核心程式碼如下:

app.config['SQLALCHEMY_DATABASE_URI']=f'mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8mb4'


app.config['SQLALCHEMY_DATABASE_URI'] 是 Flask 應用中用於配置資料庫連線字串的設定。


這個字串指定了如何連線到資料庫,包括資料庫型別、認證資訊、主機名、埠、資料庫名稱以及字元編碼等。下面是連線字串的組成部分:

 mysql+pymysql:指定了資料庫型別為 MySQL,並且使用 pymysql 作為資料庫驅動。

 USERNAME:資料庫使用者名稱,在程式碼中用變數 USERNAME 表示。

 PASSWORD:資料庫密碼,在程式碼中用變數 PASSWORD 表示。

 HOSTNAME:資料庫伺服器的主機名,在程式碼中用變數 HOSTNAME 表示。

 PORT:資料庫伺服器的埠號,在程式碼中用變數 PORT 表示。

 DATABASE:要連線的資料庫名稱,在程式碼中用變數 DATABASE 表示。

 charset=utf8或charset=utf8mb4:指定了連線到資料庫時使用的字元編碼。

utf8 編碼支援大多數國際字元,但不支援所有 Unicode 字元。
utf8mb4是 utf8 的一個超集,支援更多的字元,包括一些 emoji 表情符號。

utf8mb4 是 MySQL 5.5.3 及以上版本支援的一種編碼,它實際上是 utf8 的一個擴充套件,可以儲存 4 個位元組的 Unicode 字元。

如果我們的資料庫中需要儲存 emoji 或其他 4 位元組的 Unicode 字元,那麼使用 utf8mb4 編碼是更好的選擇

Flask連線到MySql

使用 pymysql 連線MySql,示例程式碼如下:

  from flask import Flask
  from flask_sqlalchemy import SQLAlchemy
  from sqlalchemy.sql import text
  app = Flask(__name__)


  HOSTNAME='127.0.0.1'
  PORT=3306
  USERNAME='root'
  PASSWORD ='123456'
  DATABASE='TestDB'

  app.config['SQLALCHEMY_DATABASE_URI']=f'mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8mb4'

  db=SQLAlchemy(app)


  with app.app_context():
      with db.engine.connect() as conn:
          rs: object = conn.execute(text('SELECT 1+10'))
          print(rs.fetchone())



  @app.route('/')
  def hello_world():  # put application's code here
      return 'Hello World!'


  if __name__ == '__main__':
      app.run(host='0.0.0.0',port='7788',debug=True)

Flask連線到MSSqlServer

如果要連線到 Microsoft SQL Server 資料庫,我們需要使用一個支援 SQL Server 的資料庫驅動。

在 Python 中,常用的驅動是 pyodbc 或者 pymssql。以下是使用這兩種驅動的連線字串示例:

使用 pyodbc

首先,需要安裝 pyodbc 包,可以透過 pip 安裝:

pip install pyodbc

然後,可以使用以下格式的連線字串:

app.config['SQLALCHEMY_DATABASE_URI'] = f'mssql+pyodbc://<username>:<password>@<dsn_name>'

或者,如果不想使用 DSN(資料來源名稱),我們可以提供完整的連線資訊:

app.config['SQLALCHEMY_DATABASE_URI'] = f'mssql+pyodbc://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?driver=ODBC+Driver+17+for+SQL+Server'

在這裡,<username>、<password>、<dsn_name>、<HOSTNAME>、<PORT> 和 <DATABASE> 是我們需要替換的佔位符,ODBC+Driver+17+for+SQL+Server 是 ODBC 驅動的名稱,我們可以根據 SQL Server 版本選擇相應的驅動。


使用 pymssql

首先,需要安裝 pymssql 包,可以透過 pip 安裝:

pip install pymssql

然後,可以使用以下格式的連線字串:

app.config['SQLALCHEMY_DATABASE_URI'] = f'mssql+pymssql://{USERNAME}:{PASSWORD}@{HOSTNAME}/{DATABASE}?charset=utf8'

在這裡,<USERNAME>、<PASSWORD>、<HOSTNAME> 和 <DATABASE> 是你需要替換的佔位符。

請注意,連線字串的具體格式可能會根據我們使用的 SQLAlchemy 版本和資料庫驅動的不同而有所變化。

確保查閱我們所使用的資料庫驅動的文件,以獲取正確的連線字串格式和支援的選項。

相關文章