Pyodbc的Azure Python WebApp``服务不可用''

时间:2018-10-15 04:07:17

标签: python azure azure-sql-database azure-web-sites pyodbc

我在Azure中有一个Web应用程序,该应用程序以Python运行。 我在Azure上使用Flask运行Python,一切正常,但是随后我导入了pyodbc来连接我的sql服务器(也在Azure上),并且在导入之后,当我访问URL时,“服务不可用”。

仅当我导入pyodbc时,才会出现此问题。

我该如何解决?

谢谢!

2 个答案:

答案 0 :(得分:0)

能否请您参考以下Stack Overflow帖子并以有效的解决方案为例:pyodbc on Azure

答案 1 :(得分:0)

佩瓦。根据我的经验,“服务不可用”是由于程序内部问题。您可以检查KUDU网址https://***.scm.azurewebsites.net/DebugConsole上的日志。

请参考我的工作步骤来安装pyodbc模块。

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
    )

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>

安装pyodbc软件包

我的Web应用程序使用python361x64扩展名。请参考我执行的步骤,如下所示:

第1步:创建一个Azure Web应用并添加扩展程序(这里是Python 3.6.1 x64)

enter image description here

第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 Python361x64touch get-pip.py,然后通过“编辑”按钮将网址https://bootstrap.pypa.io/get-pip.py的内容复制到get-pip.py中,然后运行{ {1}}安装点子工具。

enter image description here

第4步:通过python -m pip安装pyodbc安装pyodbc软件包或您需要的任何软件包

enter image description here

更多部署详细信息,请参阅此tutorial

获取查询结果

访问网址python get-pip.py

enter image description here

希望对您有帮助。有任何问题,请告诉我。