在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 版本和資料庫驅動的不同而有所變化。
確保查閱我們所使用的資料庫驅動的文件,以獲取正確的連線字串格式和支援的選項。