install odbc driver to azure app service

前端 未结 2 1767
花落未央
花落未央 2020-12-12 00:58

I am running a simple Python web app in the Azure app service that needs to acces an Azure SQL database. In order to que an Azure SQL database from python one needs to insta

相关标签:
2条回答
  • 2020-12-12 01:37

    Per my experience , the Azure Web App Service Runtime is Windows system. That does not require a reload driver.

    I tried to access Azure SQL Database in my flask web app.

    You could refer to my working code.

    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
        )
    

    Install pyodbc package

    Here, I use python361x64 extension. So I run the command python -m pip install pyodbc in KUDU.

    Get query result

    Access the url http://***.azurewebsites.net/database .

    Hope it helps you.Any concern, please let me know.


    Update Answer :

    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>
    

    Update Answer 2:

    My web app works with python361x64 extension. Please refer to the steps I did as below:

    Step 1 : Create azure web app and add Extensions(here is Python 3.6.1 x64)

    Step 2 : Publish your flask project and add the 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>
    

    Step 3: Switch to the Kudu CMD and commands cd Python361x64 and touch get-pip.py and copy the content of the url https://bootstrap.pypa.io/get-pip.py into the get-pip.py via Edit button, then run python get-pip.py to install the pip tool.

    Step 4 : Install pyodbc package or any packages you need via python -m pip install pyodbc

    More deployment details , please refer to this tutorial.

    0 讨论(0)
  • 2020-12-12 01:41

    Unfortunately, you can't install custom drivers on Azure App Service. You would need an IaaS offering for that. This question has already been asked here.

    0 讨论(0)
提交回复
热议问题