gpt4 book ai didi

python - 与 microsoft azure sql 数据库的连接在本地环境中有效,但在生产中无效

转载 作者:行者123 更新时间:2023-12-03 05:26:00 26 4
gpt4 key购买 nike

我正在尝试打开一个 Web 服务应用程序,该应用程序将允许我使用 python 代码连接到 azure 上的数据库,我尝试过使用 sqlalchemypyodbc 并且我是能够成功连接到我的机器上的数据库,在本地主机中,我可以执行我想要在那里执行的所有必要操作。但我希望能够设置此代码,以便能够在 ajax 调用中命中特定路由,该调用可以对我的数据库执行某些操作,例如将用户事件标志翻转为 false。然而问题是,当我将 python 代码上传到 azure 时,在这里使用本指南( https://learn.microsoft.com/en-us/azure/app-service/quickstart-python?tabs=bash&pivots=python-framework-flask )它只是返回 500 服务器错误,我在跟踪中找不到任何关于它为什么不起作用的内容,我认为它可能只是我的本地计算机在数据库的 IP 地址中被列入白名单,但即使我将该应用程序服务 IP 地址添加到允许的 IP,它仍然返回服务器错误。这是代码的设置:

from flask import Flask
from sqlalchemy import create_engine
import pyodbc

app = Flask(__name__)

@app.route('/')
def connection():
Driver = "{ODBC Driver 13 for SQL Server}"
Server = "server string"
Port = 1433
Database = "dbname"
Uid = "user"
Pwd = "pass"

try:
cnxn = pyodbc.connect(f'DRIVER={Driver};SERVER={Server};DATABASE={Database};Uid={Uid};Pwd={Pwd};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;')
cursor = cnxn.cursor()
cursor.execute(f"SELECT * FROM (Database Table) where id = 999999999;")

for row in cursor:
print('row = %r' % (row,))
return "Connection to database successful"

我省略了某些细节,但语法应该保持不变,同样,在我的本地计算机中,我可以连接到数据库并返回数据。但是一旦它在 azure 中编译了代码,它就不再起作用了。

请原谅 try 语句。我试图捕获错误并将其发送给客户端,希望从 500 错误中收集更多信息,但没有成功。

**编辑:值得一提的是,如果我删除实际的连接字符串以及与连接到数据库有关的任何内容,代码将返回“连接到数据库成功”这让我相信它根本没有完全建立与数据库的连接。这就是为什么它会出错,但是问题仍然存在,为什么我可以在本地环境中连接,但不能在 azure 中连接?

最佳答案

您听说过 Azure 中的远程调试吗?这是使用 Visual Studio 代码或 VS 跟踪 Web 或应用程序最初运行良好的错误的最佳工具。您可以使用多种方法逐行或逐簇调试。请在这里查看

https://learn.microsoft.com/en-us/visualstudio/debugger/remote-debugging?view=vs-2019

关于python - 与 microsoft azure sql 数据库的连接在本地环境中有效,但在生产中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68867980/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com