服务器上用IIS部署Flask web项目

1.前言

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

2.准备工作

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

服务器上用IIS部署Flask web项目

python环境


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

服务器上用IIS部署Flask web项目

Mysql


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

服务器上用IIS部署Flask web项目

image.png


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

 

3.准备发布

首先用pip安装一个wfastcgi。

pip install wfastcgi

 

服务器上用IIS部署Flask web项目

wfastcgi


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

服务器上用IIS部署Flask web项目

image.png


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

服务器上用IIS部署Flask web项目

image.png


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&quot;" 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中添加一个网站,如图。

服务器上用IIS部署Flask web项目

添加网站


添加好之后,执行。

服务器上用IIS部署Flask web项目

image.png


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

服务器上用IIS部署Flask web项目

部署成功


在本地测试一下。

服务器上用IIS部署Flask web项目

image.png


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

 

更多学习资料请关注"爱游戏爱编程"。

 

服务器上用IIS部署Flask web项目

爱游戏爱编程.jpg