Flask连接数据库
在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 版本和数据库驱动的不同而有所变化。
确保查阅我们所使用的数据库驱动的文档,以获取正确的连接字符串格式和支持的选项。

浙公网安备 33010602011771号