2017-11-07 13 views
0

Azureアプリケーションサービスで、Azure SQLデータベースにアクセスする必要のある単純なPython Webアプリケーションを実行しています。 PythonからAzure SQLデータベースを取得するには、ODBCドライバをインストールする必要があります。私は私のローカルマシンでそれを行い、それは完全に動作します。 私のアプリケーションを実行しているAzureマシンにODBCドライバをインストールするにはどうしたらいいのですか?azureアプリケーションサービスにodbcドライバをインストールしてください

+0

こんにちは、あなたのローカルマシンシステムは何ですか? Windows? –

+0

はい、それはWindowsです –

答えて

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 
    ) 

私はpython361x64拡張子を使用し、ここで

pyodbcパッケージをインストールします。だから私はKUDUにpython -m pip install pyodbcというコマンドを実行します。

enter image description here

取得クエリ結果

アクセスURL http://***.azurewebsites.net/database

enter image description here

は、それがyou.Any懸念を役に立てば幸い、私に知らせてください。


アップデート回答:

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:私は以下のように行った手順を参照してください紺碧のWebアプリケーションを作成し、拡張機能を追加し

enter image description here

ステップ2(ここではPython 3.6.1 x64の場合):あなたのflaskプロジェクトを公開し、 web.configを追加します。

web。設定:

<?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:PIPツールをインストールするpython get-pip.pyを実行し、[編集]ボタンを経由してクーズーCMDに切り替え、cd Python361x64touch get-pip.pyをコマンドとget-pip.pyにURL https://bootstrap.pypa.io/get-pip.pyの内容をコピーします。

enter image description here

ステップ4:インストールpyodbcパッケージまたはあなたのpython -mピップ経由で必要なすべてのパッケージをインストールしますpyodbc

enter image description here

より展開の詳細は、このtutorialを参照してください。

+0

これは超クールです、ありがとうございます!それがうまくいくならば、それは私のアプリの問題がドライバの非公開ではなく他のどこかにあることを意味します。私は、私のアプリケーションが紺碧のどこかにログを記録するのを見てほしいと思っています。私はAppサービスの設定でログを切り替え、Kuduでアクセスできるlog.txtファイルを生成します。しかし、サーバーログとPythonで見たことのないログしかありません。 –

+0

@IlyaPukhovこんにちは、遅く返事を申し訳ありません。アプリケーション診断を使用してアプリケーションログを確認することをお勧めします。このページを参照してください:https://docs.microsoft.com/en-us/azure/app-service/web-sites-enable-diagnostic-log。 –

+0

@IlyaPukhovこんにちは、どんな進歩ですか? –

0

残念ながら、Azure App Serviceにカスタムドライバをインストールすることはできません。それにはIaaSの提供が必要です。この質問はすでにhereと尋ねられました。

関連する問題