python3.8.3+apache24+mod_wgsi+flask部署
我最近心血来潮想做一个python的web系统,由于也是新手,在网上收罗了好多文章教程,遇到了很多坑,最终成功部署出了2020年最新版本的python3框架。写篇操作方法供大家参考。
第一步:安装python3.
这里我直接下载了python3目前最新版本3.8.3,官网下载地址:https://www.python/downloads/windows/

安装方法可参照菜鸟教程https://www.runoob/python3/python3-install.html
我将python安装在了c:\pathon文件夹中:

安装好后要添加系统环境变量,在path下添加以下前两项,我用的系统是win10,像我一样纯新手不知道系统环境变量的朋友请自行搜索下用法,这个环境变量的作用是直接能够在cmd命令的提示符下不更改路径直接使用python 或 pip。

第二步:安装flask
我们安装了python3之后,系统就会自带一个pip,pip是一个python3的安装管理器,可实现很多python相关的程序包的安装,我们就用这个东西安装flask,flask是一个python的web编程框架,这种框架还有Django等,据说没这个就不能在网页上使用python,我想知道这是为什么,为什么python不自带这种框架,对于我这种新手来说,这些都是迷。
那么具体安装教程可参照https://www.w3cschool/flask/flask_environment.html
首先保证前两部安装成功,我们可以进行一个测试
在python中新建一个目录,我这里叫xzy,大家随意建,里边新建一个txt文件,改名为hello.py,将以下代码复制进去:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
   return 'Hello World'

if __name__ == '__main__':
   app.run()

完成后像这样:

双击执行这个文件就会出现:

然后打开浏览器我们输入http://127.0.0.1:5000,出现下图代表我们前两步成功了:

经过漫长的前两步,我们终于装好了python3和flask框架初步,可以练习编程了,我们接下来为了使我们的flask程序能够在互联网上发布,我们来到了apache24和mod_wsgi的安装,我目前也不是很懂,热心网友可以告诉我为什么使用这两个程序包就能发布WEB程序。我如果研究明白了再写文章。
第三步:安装Apache
下载地址:
https://www.apachehaus/cgi-bin/download.plx
由于我们安装的是python3.8.3,所以要下载对应版本的apache,我这里选了最新版的VC15,安装了可以启动

这个压缩包下载后,我是直接解压到C盘根目录中,

到现在为止apache还和python的flask框架没有什么关系,我们先启动一下apache,在开始-运行cmd命令提示符下,我这里的路径是下图,然后执行httpd命令,不报错就说明启动了

在浏览器输入http://127.0.0.1,出现下图就说明Apache启动成功了

总之apache 是提供web服务的程序, 用来执行网页程序和显示网页的服务器。但是apache不能直接连接flask,必须用mod_wsgi或其他程序桥接一下,flask为什么不能直接用apache,这里我也不懂这是为什么,既然要求这么做,那就再安装mod_wsgi。
第四步:安装mod_wsgi
如下地址下载编译好的 mod_wsgi解压包
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
由于我们安装的是python3.8.3,所以要下载对应版本的mod_wsgi,因为是python3.8和Apache24VC15,所以这里我下载了ap24v15-cp38的64位版本,应该是没问题的,据说这个版本号对应不上没办法用的

把下载的.whl文件复制到python\Scripts下使用pip进行安装
在cmd里执行
pip3 install “mod_wsgi-4.7.1+ap24vc15-cp38-cp38-win_amd64.whl”

安装成功后在python的安装目录的\scripts文件夹下运行
mod_wsgi-express module-config 出现下图说明成功

然后把下图的
三句代码添加到c:\Apache24\conf\http.conf文件中,这个文件是Apache的加载文件,说明加载了我们这个python的mod_wsgi连接器,Apache HTTP服务器的mod_wsgi扩展模块,实现了Python WSGI标准,可以支持任何兼容Python WSGI标准的Python应用。

下面我们要创建一个mod_wsgi连接flask的应用,我在D盘建立了一个wsgiwork文件夹,用txt建立两个文件,然后把文件名分别改成testweb.py和wsgi.wsgi。

在testweb.py中加入以下flask代码:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
    return 'Hello Flask'
if __name__ == '__main__':  
    app.run()

双击之后输入flask的5000端口测试一下,

成功,没毛病

在wsgi.wsgi中加入以下代码:
import sys
sys.path.insert(0,‘d:\wsgiwork’)
from testweb import app as application #这里的testweb就是#上边建立的testweb.py,现在我们要再Apache+wgsi中测试。

接下来再打开http.conf,还要添加一个虚拟环境,用来让apache执行我们上边的文件,http.conf文件中添加如下代码:

<VirtualHost *>
    ServerName 127.0.0.1  
    WSGIScriptAlias / D:\wsgiwork\wsgi.wsgi
    <Directory 'D:\wsgiwork'>
        Require all granted    #这是apache24的最新写法
    </Directory>
</VirtualHost>

好了,我们打开apache测试一下

在浏览器输入http://127.0.0.1

哈哈,Hello Flask,成功了!successful!

更多推荐

python3.8.3+apache24+mod_wgsi+flask部署forWindows64