ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

在IIS中部署Flask应用

2021-10-19 14:59:22  阅读:187  来源: 互联网

标签:exe IIS Flask xxx python 部署 wfastcgi packages


  1. 安装“CGI”,打开控制面板,在“程序和功能”中点击“启用或关闭Windows功能”,在弹出的界面中选中“CGI”,点确定;
    在这里插入图片描述
  2. 安装"wfastcgi",使用命令:“pip install wfastcgi”,这样在Python环境里的Scripts文件夹下面就有了wfastcgi;
    在这里插入图片描述
  3. 启用“wfastcgi”,直接在上图中的Scripts文件夹下,用管理员身份打开命令窗口,执行“wfastcgi-enable.exe”程序。
    在这里插入图片描述
    执行完毕后,可以看到输出
已经在配置提交路径“MACHINE/WEBROOT/APPHOST”向“MACHINE/WEBROOT/APPHOST”的“system.webServer/fastCgi”节应用了配置更改"xxx\python.exe|xxx\lib\site-packages\wfastcgi.py" can now be used as a FastCGI script processor”

其中"xxx\python.exe|xxx\lib\site-packages\wfastcgi.py"非常重要,会用于后面的IIS配置中。xxx这里代表的是Python环境的本地路径;

  1. 在IIS中添加Flask应用,同正常的网站部署操作一样;
    在这里插入图片描述

  2. 点击Flask应用网站,在处理程序映射中,添加模块映射,参照如下的截图所示,有几点需要特别注意:
    a. 可执行文件的值就是步骤3中的“xxx\python.exe|xxx\lib\site-packages\wfastcgi.py”;
    b. 请求限制里映射面板中勾选框要取消选中;
    在这里插入图片描述
    在这里插入图片描述
    实际上,在这一步设置完毕后,会在Flask应用的根文件夹里自动生成一个web.config文件。

  3. 修改web.config文件,需要在appSettings节点里添加两个必需的参数“WSGI_HANDLER”和“PYTHONPATH”。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
       <!-- handlers在5步骤中配置好,IIS管理器生成,不要手工修改 -->
        <handlers>
            <add name="FlaskFastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="xxx\python.exe|xxx\Lib\site-packages\wfastcgi.py" resourceType="Unspecified" />
        </handlers>
    </system.webServer>
    <!-- appSettings节点需要手工添加 -->
    <appSettings>
        <!-- 2个必须要有的参数: 
        @WSGI_HANDLER:fastCGI获得请求后调用的flask应用入口。
        @PYTHONPATH: 执行整个应用的项目目录
        -->
        <add key="WSGI_HANDLER" value="Flask应用的启动对象" />
        <add key="PYTHONPATH" value="Flask应用的根目录" />
    </appSettings>
</configuration>

至此,启动Flask应用,正常情况下,在浏览器里就能够访问了。

标签:exe,IIS,Flask,xxx,python,部署,wfastcgi,packages
来源: https://blog.csdn.net/zhang653072/article/details/120844960

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有