Hosting Flask(Python) app throws CGI error

后端 未结 1 1389
半阙折子戏
半阙折子戏 2020-12-11 13:42

I have followed all the steps as per the azure website. I can see the python 3.6 version running on Azure. I have installed the python 3.6 extension and added a proper web.c

相关标签:
1条回答
  • 2020-12-11 13:58

    Generally, the issue was caused by your web.config file configured incorrectly to not start up your flask app from IIS.

    Here is my case for deploying flask Hello World app on Azure Website, which you can refer to to check your deployment whether be correct.

    1. I installed a Python extension python364x86 under D:\home. Maybe yours installed is python364x64.
    2. I commanded pip install flask in the path D:\home\python364x86 via Kudo console.
    3. My file structure under wwwroot as the figure below via command tree /F /A.
    4. The __init__.py file content is like the Flask offical Hello demo.

      from flask import Flask
      app = Flask(__name__)
      
      @app.route("/")
      def hello():
          return "Hello World!"
      
      if __name__ == "__main__":
          app.run()
      
    5. My web.config file content is as below, note python364x86 I used in the property scriptProcessor of tag system.webServer > handles > add at here.

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <appSettings>
          <add key="PYTHONPATH" value="D:\home\site\wwwroot" />
          <add key="WSGI_HANDLER" value="myflask.app" />
        </appSettings>
        <system.webServer>
          <handlers>
              <add name="PythonHandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="D:\home\python364x86\python.exe|D:\home\python364x86\wfastcgi.py" resourceType="Unspecified" requireAccess="Script"/>
          </handlers>
        </system.webServer>
      </configuration>
      

    Then the demo app works.

    If your case is different from mine, please post your web.config file content and other necessary info to help fixing up your issue.

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