我在Azure应用服务中运行一个简单的Python Web应用程序,需要访问Azure SQL数据库。为了从python中查找Azure SQL数据库,需要安装ODBC驱动程序。我已经在我的本地机器上完成了它并且它完美地工作。 如何在运行我的应用程序的Azure计算机上安装ODBC驱动程序,或者根本不需要它?
答案 0 :(得分:1)
根据我的经验,Azure Web App Service Runtime是Windows系统。这不需要重装驱动程序。
我尝试在我的烧瓶网络应用程序中访问Azure SQL数据库。
你可以参考我的工作代码。
<强> view.py 强>
from datetime import datetime
from flask import render_template
from jaygongflask import app
import pyodbc
@app.route('/database')
def database():
"""Renders the about page."""
cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER=***.database.windows.net;DATABASE=***;UID=***;PWD=***')
cursor = cnxn.cursor()
cursor.execute("select * from dbo.Student")
row = cursor.fetchall()
#for r in row:
# print r
return render_template(
'database.html',
title='Database',
year=datetime.now().year,
message='Database query result.',
queryResult = row
)
安装pyodbc软件包
这里,我使用python361x64扩展名。所以我在KUDU中运行命令python -m pip install pyodbc
。
获取查询结果
访问网址http://***.azurewebsites.net/database
。
希望它对你有所帮助。有任何疑虑,请告诉我。
更新答案:
的web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="WSGI_HANDLER" value="jaygongflask.app"/>
<add key="PYTHONPATH" value="D:\home\site\wwwroot"/>
<add key="WSGI_LOG" value="D:\home\LogFiles\wfastcgi.log"/>
</appSettings>
<system.webServer>
<handlers>
<add name="PythonHandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="D:\home\Python361x64\python.exe|D:\home\Python361x64\wfastcgi.py" resourceType="Unspecified" requireAccess="Script"/>
</handlers>
</system.webServer>
</configuration>
更新答案2:
我的网络应用程序使用python361x64扩展。请参考我的步骤如下:
步骤1:创建azure web app并添加Extensions(此处为Python 3.6.1 x64)
第2步:发布您的flask
项目并添加web.config
。
的web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="WSGI_HANDLER" value="<Your Project Name>.app"/>
<add key="PYTHONPATH" value="D:\home\site\wwwroot"/>
<add key="WSGI_LOG" value="D:\home\LogFiles\wfastcgi.log"/>
</appSettings>
<system.webServer>
<handlers>
<add name="PythonHandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="D:\home\Python361x64\python.exe|D:\home\Python361x64\wfastcgi.py" resourceType="Unspecified" requireAccess="Script"/>
</handlers>
</system.webServer>
</configuration>
步骤3:切换到Kudu CMD并命令cd Python361x64
和touch get-pip.py
并通过编辑按钮将网址https://bootstrap.pypa.io/get-pip.py
的内容复制到get-pip.py
,然后运行{ {1}}安装pip工具。
步骤4:通过python -m pip install pyodbc安装pyodbc软件包或任何所需的软件包
更多部署详情,请参阅此tutorial。
答案 1 :(得分:0)
很遗憾,您无法在Azure App Service上安装自定义驱动程序。你需要一个IaaS产品。这个问题已经被问到here。