当前位置:网站首页 > SQL数据库编程 > 正文

pymysql连接池(pymysql连接sql server)



适用于:Azure SQL 数据库

本快速入门教程介绍了如何使用 Python 和 Python SQL 驱动程序 - pyodbc 将应用程序连接到 Azure SQL 数据库中的数据库并执行查询。 本快速入门按照建议的无密码方法连接到数据库。 可以在无密码中心了解有关无密码连接的详细信息。

  • 一个 Azure 订阅。
  • 配置了 Microsoft Entra 身份验证的 Azure SQL 数据库。 可以按照创建数据库快速入门创建数据库。
  • 最新版本的 Azure CLI。
  • 带 Python 扩展的 Visual Studio Code。
  • Python 3.8 或更高版本。 如果使用 Linux 客户端计算机,请参阅安装 ODBC 驱动程序。

要与 Azure SQL 数据库建立安全的无密码连接,需要特定的数据库配置。 确认 Azure 中的逻辑服务器上的以下设置,在本地和托管环境中正确连接到 Azure SQL 数据库:

  1. 对于本地开发连接,请确保逻辑服务器配置为允许本地计算机 IP 地址和其他 Azure 服务进行连接:
    • 导航到服务器的“网络”页。
    • 切换“所选网络”单选按钮以显示其他配置选项。
    • 选择添加客户端 IPv4 地址(xx.xx.xx.xx)”以添加防火墙规则,这会启用来自本地计算机 IPv4 地址的连接。 或者,还可以选择“+ 添加防火墙规则”,输入所选的特定 IP 地址。
    • 确保选中“允许 Azure 服务和资源访问此服务器”复选框。

  2. 还必须为服务器启用 Microsoft Entra 身份验证,并为其分配 Microsoft Entra 管理员帐户。 对于本地开发连接,Microsoft Entra 管理员帐户应该是你也可以在本地用于登录到 Visual Studio 或 Azure CLI 的帐户。 可以在逻辑服务器的“Microsoft Entra ID”页上验证是否为服务器启用了 Microsoft Entra 身份验证

  3. 如果你使用个人 Azure 帐户,请确保已为 Azure SQL 数据库设置并配置 Microsoft Entra,以便将你的帐户分配为服务器管理员。如果你使用公司帐户,则很可能已为你配置了 Microsoft Entra ID。

使用 Visual Studio Code 创建新的 Python 项目。

  1. 打开 Visual Studio Code 并为项目创建一个新文件夹,并将目录更改为此文件夹。
     
  2. 为应用创建一个虚拟环境。
  3. 创建一个新的名为 的 Python 文件。

若要使用 Python 连接到 Azure SQL 数据库,请安装 驱动程序。 此包充当数据提供程序,用于连接到数据库、执行命令和检索结果。 在本快速入门中,还将安装 、 和 包来创建和运行 API。

有关在所有操作系统上安装 驱动程序的详细信息和具体说明,请参阅为 pyodbc Python 开发配置开发环境。

  1. 使用以下行创建 requirements.txt文件:
     
  2. 安装这些要求。
     

对于本地开发和连接到 Azure SQL 数据库,请添加下面的 环境变量。 将 和 占位符替换为你自己的值。 为 Bash shell 显示了示例环境变量。

在本地运行时,交互式身份验证提供无密码选项。

可以获取详细信息以从 Azure 门户创建连接字符串

  1. 转到“Azure SQL 服务器”,选择“SQL 数据库”页以查找数据库名称,然后选择数据库。
  2. 在数据库上,转到“连接字符串”页以获取连接字符串信息。 在“ODBC”选项卡下查看。

在项目文件夹中,创建 app.py 文件并添加示例代码。 此代码创建一个 API,用于:

  • 从环境变量中检索 Azure SQL 数据库连接字符串。
  • 在启动期间,在数据库中创建 表(仅限测试场景)。
  • 定义一个函数,用于从数据库中检索所有 记录。
  • 定义一个函数,用于从数据库中检索一个 记录。
  • 定义一个函数,用于从数据库中检索新的 记录。
 

应用已准备好在本地进行测试。

  1. 在 Visual Studio Code 中运行 文件。
     
  2. 在应用 http://127.0.0.1:8000/docs 的 Swagger UI 页上,展开 POST 方法并选择“试用”。

    还可以使用试用 /redoc 查看另一种形式的 API 生成文档。

  3. 修改示例 JSON 以包含名字和姓氏的值。 选择“执行”,将新记录添加到数据库中。 API 返回成功的响应。
  4. 在 Swagger UI 页上,展开 GET 方法并选择“试用”。 选择“执行”,此时会返回你刚刚创建的人员。

应用已准备好部署到 Azure。

  1. 创建 start.sh 文件,以便 Azure 应用服务中的 gunicorn 可以运行 uvicorn。 start.sh 有一行:
     
  2. 使用 az webapp up 将代码部署到应用服务。 (可以使用选项 在不创建资源的情况下查看命令的作用。)
     
  3. 使用 az webapp config set 命令将应用服务配置为使用 start.sh 文件。
     
  4. 使用 az webapp identity assign 命令为应用服务启用系统分配的托管标识。
     

    在本快速入门中,使用系统分配的托管标识进行演示。 在更广泛的方案中,用户分配的托管标识更高效。 有关详细信息,请参阅托管标识最佳做法建议。 有关将用户分配的托管标识与 pyodbc 结合使用的示例,请参阅迁移 Python 应用程序以将无密码连接用于 Azure SQL 数据库。

在“配置数据库”部分中,为 Azure SQL 数据库服务器配置了网络和 Microsoft Entra 身份验证。 在本部分,你将完成数据库配置,并使用连接字符串配置应用服务以访问数据库服务器。

若要运行这些命令,可以使用任何可以连接到 Azure SQL 数据库的工具或 IDE,包括 SQL Server Management Studio (SSMS) 、Azure Data Studio 以及包含 SQL Server mssql 扩展的 Visual Studio Code。 此外,还可以按照快速入门:使用 Azure 门户查询编辑器查询 Azure SQL 数据库中所述使用 Azure 门户。

  1. 使用 SQL 命令将用户添加到 Azure SQL 数据库,以创建用于无密码访问的用户和角色。
     

    有关详细信息,请参阅 包含的数据库用户 - 使你的数据库可移植。 有关显示相同原则但应用于 Azure VM 的示例,请参阅教程:使用 Windows VM 系统分配的托管标识访问 Azure SQL。 有关分配的角色的详细信息,请参阅固定数据库角色。

    如果禁用然后启用应用服务系统分配的托管标识,请删除用户并重新创建它。 运行 并重新运行 和 命令。 若要查看用户,请使用 。

  2. 使用 az webapp config appsettings set 命令为连接字符串添加应用设置。
     

    对于部署的应用,连接字符串应类似于:

     

    使用你自己的值填写 和 。

    无密码连接字符串不包含用户名或密码。 当应用在 Azure 中运行时,代码会使用 Azure 标识库中的 来获取用于 的令牌。

浏览到应用的 URL,测试与 Azure SQL 数据库的连接是否正常工作。 可以在应用服务的概述页上找到应用的 URL。

 

将 /docs 追加到 URL 以查看 Swagger UI 并测试 API 方法。

恭喜! 现在,你的应用程序已连接到本地和托管环境中的 Azure SQL 数据库。

  • 迁移 Python 应用程序以将无密码连接用于 Azure SQL 数据库 - 显示用户分配的托管标识。
  • Azure 服务的无密码连接
  • 托管标识的最佳做法建议
到此这篇pymysql连接池(pymysql连接sql server)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 达梦如何执行sql脚本(达梦执行sql脚本命令)2025-01-13 16:09:10
  • sql文件怎么导入mysql(sql文件怎么导入mysql数据库)2025-01-13 16:09:10
  • sqlyog打开sql文件(怎样打开sql文件)2025-01-13 16:09:10
  • mysql查询锁表进程(mysql 查锁表)2025-01-13 16:09:10
  • sql文件如何打开数据库(sql怎么打开数据库文件)2025-01-13 16:09:10
  • sql使用for循环(sqlfor循环用法)2025-01-13 16:09:10
  • sqlldr 导入clob(sqlldr导入clob)2025-01-13 16:09:10
  • mysql锁表如何解锁(mysql锁表和解锁语句)2025-01-13 16:09:10
  • plsql12注册码(plsql12注册码永久可用)2025-01-13 16:09:10
  • mysql主键的数据类型(mysql数据库主键什么类型)2025-01-13 16:09:10
  • 全屏图片