Azure Python WebApp «Служба недоступна» с Pyodbc - PullRequest
0 голосов
/ 15 октября 2018

У меня есть веб-приложение в Azure, которое работает на Python.Я запускаю Python с Flask на Azure, и все идет нормально, но затем я импортировал pyodbc для подключения к моему sql-серверу, также на Azure, и после этого импорта у меня появляется «служба недоступна», когда я получаю доступ к своему URL.

Эта проблема возникает только при импорте pyodbc.

Как я могу решить эту проблему?

Спасибо!

1 Ответ

0 голосов
/ 16 октября 2018

Паива.По моему опыту, «сервис недоступен» из-за внутренней проблемы программы.Вы можете проверить журнал по адресу 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

Мое веб-приложение работает с расширением python361x64.Пожалуйста, обратитесь к шагам, которые я сделал, как показано ниже:

Шаг 1. Создание веб-приложения Azure и добавление расширений (здесь 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: Переключитесь на CMD Куду иКоманды cd Python361x64 и touch get-pip.py и скопируйте содержимое URL https://bootstrap.pypa.io/get-pip.py в get-pip.py с помощью кнопки Изменить, затем запустите python get-pip.py, чтобы установить инструмент pip.

enter image description here

Шаг 4: Установите пакет pyodbc или любые нужные вам пакеты через python -m pip install pyodbc

enter image description here

Дополнительные сведения о развертывании см. В этом руководстве .

Получить результат запроса

Доступ к URL-адресу http://***.azurewebsites.net/database.

enter image description here

Надеюсь, это поможет вам. Любая проблема, пожалуйста, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...