一. 安装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
-
创建目录C:\Test_Web
-
创建文件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 "<h1 style='color:red' algin='center'>Hello World!<h1>"
@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})
- 创建文件test.wsgi
import sys
sys.path.insert(0, 'c:\Test_Web')
from test import app as application
- 我的test.py里面还有个html,所以可以再创建一个templates目录和main.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Main</title>
</head>
<body>
<h1 style='color:red' algin='center'>Main<h1>
</body>
</html>
六. 配置Apache
在apache24/conf/httpd.conf中添加如下配置:
Listen 9003
<VirtualHost *:9003>
ServerAdmin admin@example.com
WSGIScriptAlias / C:\Test_Web\test.wsgi
<Directory 'C:\Test_Web'>
Require all granted
Require host ip
</Directory>
</VirtualHost>
重启服务器
七. 测试
- 输入http://localhost:9003/ ,测试数据返回
- 输入http://localhost:9003/main/ ,测试网页调用
- 输入http://localhost:9003/restful/getTask,测试Get方法
-
在postman中,测试Post方法
image.png
网友评论