python - 托管 Flask(Python) 应用程序抛出 CGI 错误

标签 python azure flask azure-web-app-service

我已按照 azure 网站执行所有步骤。我可以看到Python 3.6版本在Azure上运行。我已经安装了 python 3.6 扩展并添加了正确的 web.config 文件。当我尝试打开我的 URL 时,出现以下错误

http://myuniqueappname114.azurewebsites.net/

enter image description here

知道如何修复此错误

最佳答案

通常,该问题是由于您的 web.config 文件配置错误导致无法从 IIS 启动 Flask 应用程序引起的。

这是我在Azure网站上部署flask Hello World应用程序的案例,您可以引用该案例检查您的部署是否正确。

  1. 我在 D:\home 下安装了 Python 扩展 python364x86。也许您安装的是python364x64
  2. 我通过 Kudo 控制台在路径 D:\home\python364x86 中命令 pip installflask
  3. 通过命令tree/F/A,我在wwwroot下的文件结构如下图所示。 enter image description here
  4. __init__.py 文件内容类似于 Flask 官方 Hello 演示。

    from flask import Flask
    app = Flask(__name__)
    
    @app.route("/")
    def hello():
        return "Hello World!"
    
    if __name__ == "__main__":
        app.run()
    
  5. 我的web.config文件内容如下,注意我在标签的属性scriptProcessor中使用了python364x86 system.webServer > 处理 > 在此处添加

    <?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>
    

然后演示应用程序就可以运行了。 enter image description here

如果您的情况与我的情况不同,请发布您的 web.config 文件内容和其他必要信息,以帮助解决您的问题。

关于python - 托管 Flask(Python) 应用程序抛出 CGI 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54121080/

相关文章:

包含自动更改的对象的 Python 堆栈

python - 在推送到 S3 之前,是否有更干净的方法来旋转通过 Flask 上传的智能手机图像?

python - 使用同一模型创建两个不同的表

azure - 使用 Terraform 阻止允许共享访问 key

azure - 审批框架不会向 Azure AD B2C 中的用户显示。 (用户同意)

flask - 用 flask 运行 RASA

python - 使用 Flask 上传和下载文件

python - 从头到尾的 Numpy 切片

azure - Azure 需要 iptables 吗?

python - Google AppEngine PYTHON 灵活环境是否支持任务队列?