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 版本和数据库驱动的不同而有所变化。

确保查阅我们所使用的数据库驱动的文档,以获取正确的连接字符串格式和支持的选项。

posted @ 2024-12-11 03:21  青云Zeo  阅读(291)  评论(0)    收藏  举报