1.前言

最近写了一个flask 的web小网站,有一个自己的百度云服务器,就想着把这个网址部署上去,搜了挺多的资料,这里非常感谢windows IIS部署python ,提供了非常多的帮助。以前写的都是.net项目,发布一下,直接在IIS里添加项目就行了,而这个项目是python,flask项目,和发布.net项目还是有点区别的。下面一步一步来。

2.准备工作

我的服务器以前一直是用来放.net项目的,所以python的环境一直没有装,首先安装Python3.6.5。装好添加个环境变量。测试一下。

python flask服务部署方式 flask部署到tomcat_python

python环境

嗯,很正常,没问题,请忽略我的32位的python,凑活用就行。然后是装mysql,没啥好说的,选个server only然后一顿下一步就行了。装好测试下。

python flask服务部署方式 flask部署到tomcat_python flask服务部署方式_02

Mysql

嗯,也没问题。
然后在IIS里添加一个ftp站点,把代码传上来。如何新建ftp站点的,我在另一篇文章中讲了,这里就不在赘述了。
传好的代码。

python flask服务部署方式 flask部署到tomcat_flask_03

image.png

这里为什么会有一个web.config文件呢?是因为我已经在我本机上测试发布了一下,在我自己的电脑上测试成功了,在来服务器发布的。哈哈。

3.准备发布

首先用pip安装一个wfastcgi。

pip install wfastcgi

python flask服务部署方式 flask部署到tomcat_python_04

wfastcgi

然后执行一下python36-32/scripts/wfastcgi-enable.exe

python flask服务部署方式 flask部署到tomcat_python_05

image.png

报错了,不要紧,那执行disable.exe试一下。

python flask服务部署方式 flask部署到tomcat_python_06

 

ok成功,成功之后把这个路径复制下来,放到web.config文件中,类似这样。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
           <add name="FlaskFastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="e:\virtualenv\flask-env\scripts\python.exe|e:\virtualenv\flask-env\lib\site-packages\wfastcgi.py"" resourceType="Unspecified" requireAccess="Script" />
        </handlers>
        <security>
            <requestFiltering allowDoubleEscaping="true"></requestFiltering>
        </security>
    </system.webServer>
    <appSettings>
        <!-- Required settings -->
        <add key="WSGI_HANDLER" value="app.app" />
        <add key="PYTHONPATH" value="~/" />
    </appSettings>
</configuration>

scriptProcessor后面的路径改成刚才命令行里的路径,如果scriptProcessor还是一直报错的话,那就可能是空格问题了,建议还是放到一个没有空格的目录下避免出错,下面的WSGI_HANDLER改成flask项目中主py文件的名字,后缀名就是app。然后在IIS中添加一个网站,如图。

python flask服务部署方式 flask部署到tomcat_服务器_07

添加网站

添加好之后,执行。

python flask服务部署方式 flask部署到tomcat_flask_08

 

好吧,浏览器里又报错了,不过这次错误是比较好解决的,下面可以看到 No module named 'flask-sqlalchemy',这里解释一下,在本地的时候,这些包都是全的,因为要进行开发,但是服务器上的python环境是新装的,所以还没有这些包,不着急,慢慢来,看都少那些包,在安装一次就行了。
ok服务器部署成功。如图。

python flask服务部署方式 flask部署到tomcat_python_09


在本地测试一下。

 

python flask服务部署方式 flask部署到tomcat_python_10

image.png

ok,可以打开,没问题。页面是可以显示出来了,数据库还没测试,应该也是没问题的。好了,至此,IIS上部署flask项目完成。

Study hard and make progress every day。