在Windows下用Apache+wsgi部署python+flask项目

一. 安装Apache

从http://www.apachelounge.com/download/  下载最近版本的Apache

解压到D盘下,我的80端口已经被占用了,所以需要修改配置文件:D:/Apache24/conf/httpd.conf

找到Define SRVROOT,改为:

Define SRVROOT "d:/Apache24"

找到Listen,改为:

Listen 9002

在cmd下,执行:

>d:
>cd apache24/bin
>httpd

在浏览器输入localhost:9002,在网页上显示 It Works! 表明Apache启动成功。

二. 安装Python

我下载的是Python37,这个就自己找吧。

安装目录:C:\Program Files\Python37

在环境变量Path中加入配置:

C:\Program Files\Python37\Scripts\;C:\Program Files\Python37\;

在cmd下执行:

C:\Users\Administrator>python
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD6
4)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

说明安装配置成功

三. 安装mod_wsgi

在https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi 下载对应wsgi的whl文件

把下载的.whl文件复制到python\Scripts下使用

pip3 install "mod_wsgi-4.5.15+ap24vc14-cp36-cp36m-win_amd64.whl"

进行安装在安装成功后在python的安装目录的\scripts文件夹下运行

mod_wsgi-express module-config

输出如下三行结果

LoadFile "c:/program files/python37/python37.dll"
LoadModule wsgi_module "c:/program files/python37/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd"
WSGIPythonHome "c:/program files/python37"

把这三行内容复制到http.cnf文件下的其他LoadModule命令后面。

把下面两条LoadModule的注释去掉:

LoadModule rewrite_module modules/mod_rewrite.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so

再次启动服务器即可

四. 安装Flask

我用PyCharm编程的时候其实已经装过Flask了,如果没有装过的话,就在cmd下直接执行:

pip install flask

五. 创建WebApp

1. 创建目录C:\Test_Web

2. 创建文件test.py

from flask import Flask,render_template,jsonify

app = Flask(__name__)

if __name__== '__main__':
    app.run(
        host = '0.0.0.0',
        port = 9000,
        debug = True
    )

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

Hello World!

" @app.route('/main/') def westos(): # 如何在flask程序中返回一个html页面;flask默认查找页面内容的位置为templates目录; return render_template('main.html') tasks = [ { 'id': 1, 'title': u'Buy groceries', 'description': u'Milk, Cheese, Pizza, Fruit, Tylenol', 'done': False }, { 'id': 2, 'title': u'Learn Python', 'description': u'Need to find a good Python tutorial on the web', 'done': False }] @app.route('/restful/getTask',methods=['GET']) def get_tasks(): return jsonify({'tasks':tasks}) @app.route('/restful/postTask',methods=['POST']) def post_tasks(): return jsonify({'tasks':tasks})

3. 创建文件test.wsgi

import sys
sys.path.insert(0, 'c:\\Test_Web')
from test import app as application

4. 我的test.py里面还有个html,所以可以再创建一个templates目录和main.html文件




    
    Main


Main

六. 配置Apache

在apache24/conf/httpd.conf中添加如下配置:

Listen 9003

    
    ServerAdmin [email protected]
    WSGIScriptAlias / C:\Test_Web\test.wsgi
    
	    Require all granted
	    Require host ip    
    

重启服务器

七. 测试

1. 输入http://localhost:9003/ ,测试数据返回

2. 输入http://localhost:9003/main/ ,测试网页调用

3. 输入http://localhost:9003/restful/getTask,测试Get方法

4. 在postman中,测试Post方法

在Windows下用Apache+wsgi部署python+flask项目_第1张图片

 

你可能感兴趣的:(Python)