IIS部署FLASK网站

news/2024/5/20 5:57:01/文章来源:https://blog.csdn.net/weixin_30888707/article/details/99428869

在 Windows 平台部署基于 Python 的网站是一件非常折腾的事情,Linux/Unix 平台下有很多选择,本文记录了 Flask 部署到 IIS 的主要步骤,希望对你有所帮助。

涉及工具和平台

  • Windows 7 x64

  • Python 3.4+

  • Flask

完成 Hello Flask 网站

这是一个最简单的 Flask 网站:

# hello.py
from flask import Flask
app=Flask(__name__)@app.route('/',methods=['GET']) def index(): return "Hello Flask!" if __name__=='__main__': app.run(debug=True)

运行python hello.py后没有错误说明你的 Python 环境一切正常,可以继续后面的步骤。

安装 IIS,启用 CGI

在控制面板中找到打开或者关闭 Windows 功能,安装 IIS 和 CGI,如下图。

iis+cgi

安装 URL 重写组件

IIS 需要安装 URL 重写组件,这个可以通过Microsoft Web Platform Installer来安装。下载Microsoft Web Platform Installer后运行,搜索url,分别安装。

wpi-url

注:据说 Windows10 上的 IIS 10 现在不支持 url 重写?待验证

安装 wfastcgi

通过pip就可以安装:

pip install wfastcgi

启用 wfastcgi

剩下的事情就只有一些配置了。首先以管理员身份运行wfastcgi-enable来在IIS上启用wfastcgi,这个命令位于c:\python_dir\scripts,也就是你需要确保此目录在系统的PATH里,或者你需要cd到这个目录后再执行。

# cd to python_dir\scripts if it is not in PATH wfastcgi-enable

记住命令执行成功后返回的信息:

C:\Python34\Scripts> wfastcgi-enable
Applied configuration changes to section "system.webServer/fastCgi" for "MACHINE/WEBROOT/APPHOST" at configuration commit path "MACHINE/WEBROOT/APPHOST" "C:\Python34\python.exe|C:\Python34\lib\site-packages\wfastcgi.py" can now be used as a FastCGI script processor

"C:Python34python.exe|C:Python34libsite-packageswfastcgi.py" 在下文的配置文件中需要使用。

Tips: 使用命令 wfastcgi-disable 可以将其移除。

创建 web.config 文件

下面是一个web.config文件的例子,你只需要修改对应部分就可以使用。

<?xml version="1.0" encoding="UTF-8"?>
<configuration><system.webServer> <handlers> <!-- scriptProcessor 的值来自命令行工具 wfastcgi-enable --> <add name="FlaskFastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Python34\python.exe|C:\Python34\lib\site-packages\wfastcgi.py" resourceType="Unspecified" requireAccess="Script" /> </handlers> <security> <!-- URL 重写中的特殊字符,比如加号+等等 --> <requestFiltering allowDoubleEscaping="true"></requestFiltering> </security> </system.webServer> <appSettings> <!-- Required settings --> <!-- 在这里指定Falsk app在模块中的具体位置 --> <add key="WSGI_HANDLER" value="hello.app" /> <add key="PYTHONPATH" value="~/" /> <!-- Optional settings --> <!-- 需要先创建日志目录,否则报错 --> <add key="WSGI_LOG" value="C:\logs\oboeqa_web.log" /> <add key="WSGI_RESTART_FILE_REGEX" value="" /> </appSettings> </configuration>

配置 IIS 目录及权限

假设你的 Flask 程序将部署在 C:websitehello 下面,那么你的目录结构大致如此。

C:\WEBSITE
└───hellohello.py web.config

现在你需要让IIS用户拥有访问和执行你的网站脚本的权限,进入 C:website 目录,执行下面两条命令:

cd C:\website
icacls . /grant "NT AUTHORITY\IUSR:(OI)(CI)(RX)"
icacls . /grant "Builtin\IIS_IUSRS:(OI)(CI)(RX)"

创建并访问你的网站

现在你离成功只差一步之遥,打开 IIS 管理面板,新建一个网站。

iis-add-web-site

你只需要填上网站名称,物理地址和相应的端口号,点击确认。

iis-website-config

打开浏览器,就可以访问你配置好的网站。如果有错误,可以去检查 web.config 中配置的日志文件。

iis-web-site-ok

简单总结

写完之后发现其实要完成的步骤并不是特别复杂,但是从摸索到实践的过程确实不易。本文仅讨论了部署的主要步骤,其实真正的生产环境你要考虑的问题可能更多,比如使用virtualenv 对网站进行隔离,安全问题,静态文件解析等等。

最后的惊喜

据说部署Python 网站到 IIS 还有更简单的办法,那就是安装宇宙最强的IDE - Visual Studio 2015 (VS2017 暂不支持 Python 开发),个人开发者可以免授权使用社区版。在 VS 中你可以使用 PTVS 来快捷开发并部署Python 程序,真正让你一键无忧。

ptvs-web

PTVS 支持了常见的 Python Web 框架,比如 Flask,Django,Bottle,Jade 等等,调试的时候只需要按 F5,部署右键选择 publish,跟着向导一步两步你就可以完成魔鬼的步伐。

link: https://segmentfault.com/a/1190000008909201

IIS调用COM组件时的权限问题

解决方案:

在DCOM组件服务中给MICROSOFT.EXCEL组件 赋予ASP.NET的操作权限,具体步骤:
 (1)打开开始菜单的运行对话框,输入dcomcnfg命令,确定,这时会弹出组件服务窗口
 (2)展开计算机-〉我的电脑-〉DCOM配置,找到Microsoft Excel应用程序节点
 (3)单击右键-〉属性,选中“安全”选项,在下面三个项目都选择“自定义”,并单击编辑按钮
 (4)在启动权限对话框中点击添加按钮,添加相应的用户(注意:如果是WIN2000,XP,则添加“机器名/ASPNET”用户,我这里是以WIN2003为例,
 WIN2003是添加“NETWORK Service”用户),并赋予最大权限
 (5) 选择”身份标识”,再选择”交互式用户”即可
上文中是设置EXCEL组件,你需要在你的dcomcnfg中找到你使用的com组件

原文:https://blog.csdn.net/BleuRever/article/details/50783133

转载于:https://www.cnblogs.com/wfwup/p/10728557.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_810326.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win10消息推送服务器,推送--Win10系统 - Win10系统官方网站

在 Windows 10 正式发布之后&#xff0c;微软一直保持着大约六个月提供一次“较大功能更新”、以及每月至少发布两次累积更新的节奏&#xff0c;以便为用户带来更快的功能和体验改进。两周前&#xff0c;微软宣[阅读全文 →]其中&#xff0c;Fast Ring(快速通道)收获Build 1834…

Chrome和Firefox即将开始在不安全的网站显示警告信息

Google和Firefox的网络浏览器即将更新&#xff0c;之后用户在浏览不安全的网站时将会收到警告信息。2017年1月发布的Chrome 56和Firefox 51将成为提供警告信息的首个常规版本。\\Google多次发出公告&#xff0c;从Chrome 56版本开始&#xff0c;如果用户访问需要输入密码或信用…

github设置中文_利用 Github+Hexo 搭建个人博客网站

题图&#xff1a;by watercolor.illustrations from Instagram阅读文本大概需要 3 分钟。1 什么是 Hexo&#xff1f;Hexo 是一个基于 node.js 制作的快速、简洁且高效的博客框架。Hexo 可以将我们撰写的 Markdown 文档解析渲染成静态的 HTML 网页。2 Hexo VS Jeklly•本地环境J…

html网站中怎么更新站点,如何升级你的网站全新改进升级到HTML5

升级到HTML5是相当容易的&#xff0c;因为它与HTML4兼容。事实上&#xff0c;我们没有理由摒弃HTML4的所有&#xff0c;因为HTML5只是一个简单的增加一堆新而酷的功能 添加到HTML4核心语言。升级(如果你是这样认为)到HTML5是非常简单的。你所需要做的的是修改你的DOCTYPE。这种…

django从0到1搭建网站

曾经有人说我前端很水&#xff0c;那么在这一系列文章中我打算把前后端融合在一起来做一次网站的全面重构&#xff0c;希望可以把刚刚入行的同学带上正途 请尊重原创&#xff0c;转载请注明来源网站www.shareditor.com以及原始链接地址 聊聊工程 如今&#xff0c;数据科学家已经…

linux设置网站的错误页面,轻松几步设置nginx的404错误页面

众所周知设置404页面能够帮助网站有效的避免出现死链、避免降权惩罚和降低信任度&#xff0c;而最重要的一点是能够提升用户的体验&#xff0c;引导用户到网站其他页面继续浏览。那么我们如何在nginx中设置404页面呢&#xff1f;在本文中课课家笔者就为大家介绍具体的方法步骤供…

一匿名黑客组织拿下近20%黑市网站:仅用21个步骤实现

1万多个Tor网站遭匿名黑客组织攻击&#xff0c;当访问者进入这些网站时会看到以下信息--“Freedom Hosting II(以下简称FH2)&#xff0c;你已经被攻击。”据独立安全调查员Sarah Jamie Lewis公布的一份报告显示&#xff0c;FH2总共运行了近20%的黑市网站。而没过多久&#xff0…

BlogEngine.Net架构与源代码分析系列part14:实现分析(下)——网站页面上值得参考的部分...

BlogEngine.Net的成功不仅在于它的架构设计&#xff0c;它的代码实现细节也都是很经典的&#xff0c;每个结构分割的很清晰很自然&#xff0c;希望大家多多品位一下。在这篇文章里我将给大家介绍一下BlogEngine.Net的Web实现上的几个亮点&#xff0c;包括Web.config&#xff0c…

【第一期】如何打造属于自己的网站编辑器——CKEditor与UEditor之争

首先说明一下由于经常写项目最近比较忙&#xff0c;所以一直没时间整理文章&#xff0c;现在把近阶段的一些心得分享出来&#xff0c;这是第一期&#xff0c;接下来我会跟大家讲讲ASP.NET单层&#xff0c;三层&#xff0c;以及多层开发企业建站和具体要求和操作&#xff0c;希望…

网站上显示农历及阳历节日

把阳历日期转换为农历用到的函数为ChinaDate.ConvertToNongLi(DateTime.Now); 得到节日的函数为 ChinaDate.GetFestival(DateTime.Now); 代码&#xff1a; using System.Globalization; using System.Collections; using System;namespace NetWeb2011.Common {public static cl…

AWWWB 网站克隆器 v1.0 发布

软件名称&#xff1a;AWWWB.COM网站克隆器1.0 开发商&#xff08;主页&#xff09;&#xff1a;www.awwwb.com 联系人&#xff1a;awwwb.comqq.com 软件性质&#xff1a;免费软件/开源软件 软件描述&#xff1a; AWWWB.COM网站克隆器&#xff1a;输入被克隆网站的首页网址&…

一个Java语言所写的shop网站框架明细

核心框架Spring Framework &#xff1a;作为一个优秀的开源框架&#xff0c;是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构&#xff0c;分层架构允许您选择使用哪一个组件&#xff0c;同时为 J2EE 应用程序开发提供集成的框架。 模板引擎FreeM…

iframe懒加载_wordpress网站视频和图片懒加载插件的对比与使用 a3 Lazy Load

都说wordpress网站速度慢&#xff0c;三人成虎&#xff0c;养虎为患&#xff0c;今天就推荐个使wordpress网站提速度的插件。特别是图片或者视频较多的站&#xff0c;用个懒加载插件将大大减少一时的http(s)请求、减少服务器端压力&#xff0c;使服务器按需加载。对于用户体验&…

php教育网站设计案例_UI设计素材模板|设计良好的教育网站:3个快捷技巧

拥有一个高质量的学校网站比以往任何时候都更重要。优秀的UI设计素材模板&#xff0c;帮助设计师和管理人员建立最好的教育网站。从成功的设计中寻找灵感&#xff01;3个快捷技巧1. 使用教育专用的网站构建器首先&#xff0c;用专门教育内容管理系统(CMS)来制作学校网站是个好主…

服务器内部移动文件速度慢,网站打开速度慢的原因分析已经解决排查方案(实用大全)...

72018/7网站打开速度慢的原因分析已经解决排查方案(实用大全)飞鸟哥上百个案例&#xff0c;3天整理,实证案例&#xff0c;全面&#xff0c;实用&#xff01;假如你是网站提供者&#xff0c;或者网站运营者看下文本给你专业全面的经验。飞鸟哥&#xff0c;根据10年经验&#xff…

秒杀全网!研发、运营必备实用工具网站

目录 1、搜索引擎 2、PPT 3、图片操作 4、文件共享 5、招聘求职 6、程序员面试题库 7、办公、开发软件 8、高清图片、视频素材网站 9、项目开源 10、算法 11、在线工具宝典大全 12、音乐 13、神辅助工具 14、语音处理 15、大数据 16、电子书 程序员开发需要具…

【织梦插件】xenu软件-网站url和死链提取工具免费下载

软件名称xenu软件作用网站网址提取工具适宜人群SEO网址http://www.jingdouwang.cn/zygx/wzcj/278.html 软件简介&#xff1a; Xenu Link Sleuth 可能是你所见功能最强大的网站死链接查询的软件了。使用方法简单&#xff0c;仅需要输入网站URL就可以完成死链查询。用户可直接查看…

IIS部署,发布网站

因项目需要&#xff0c;正在学习如何部署IIS服务&#xff0c;发布网站&#xff0c;将遇到的问题记录下。 一、IIS部署 1.打开控制面板&#xff0c;选择 ‘程序’ 2.程序和功能下&#xff0c;选择打开或关闭Windows功能 3.等待加载&#xff0c;选择Internet信息服务&#xff0…

网站业务架构演变过程

有一天&#xff0c;我突发奇想创建了一个站点&#xff0c;基于LNMP架构&#xff0c;起初只有我自己访问&#xff0c;后来因为我点儿正&#xff0c;访问量越来越大&#xff0c;所以最终导致下面的架构演变。1. 单台机器因为只是一个小站&#xff0c;访问量一天也没有多少uv&…

做网站服务器e3,用e3做游戏服务器

用e3做游戏服务器 内容精选换一换下面以CentOS 6.9 (x86_64)操作系统为例&#xff0c;举例介绍裸金属服务器增强高速网卡的配置方法。RedHat系列、Oracle Linux系列、Euler系列及CentOS系列操作系统的配置方法类似。以“root”用户&#xff0c;使用密钥或密码登录裸金属服务器。…