赞
踩
web.py是python中一个相对容易上手的web服务器搭建工具。
web.py可以直接通过pip install 的方式安装即可,即:
pip install web.py
- # -*- coding: utf-8 -*-
- """
- Created on Mon May 10 20:37:00 2021
- @author: Administrator
- """
- import web #web.py
-
- urls = (
- '/server' , 'server',
- '/.*', 'notfound' #localhost:port/其他任意界面,访问notfound类
- )
-
- class MyApplication(web.application):
- def run(self, port=8080, *middleware):
- func = self.wsgifunc(*middleware)
- return web.httpserver.runsimple(func, ('0.0.0.0', port))
-
- class server:
- def __init__(self):
- self.return_msg = {'errorCode': 0, 'msg': '系统正常!'}
-
- def POST(self): #POST处理方式与GET一致
- content = web.input()
- print('收到消息:', content.key1, content.key2, content.key3)
- return str(self.return_msg).replace('\'', '\"')
-
- class notfound:
- def GET(self):
- print('--from notfound')
- return '404 not found'
- def POST(self):
- print('--from notfound')
- return '404 not found'
-
- if __name__ == "__main__":
- app = MyApplication(urls ,globals())
- app.run(port=8090)
url页面是指网页访问地址,响应类是指定页面做出的响应。如上所示,url页面用一个小括号元组形式来定义。'/server', 'server' 表示url地址为127.0.0.1:port/server或者localhost:port/server页面对应函数处理类为class server。'/.*', 'notfound'表示除了server页面之外,且在指定端口port下的地址时均由class notfound类来表示。可以按照上述方法,定义多个页面。
在响应函数类处理消息过程中,POST与GET处理方法基本一致。
- urls = (
- '/server' , 'server',
- '/.*', 'notfound' #localhost:port/其他任意界面,访问notfound类
- )
web.py默认端口为8080端口,但是有时候8080已经被占用了,所以需要自定义端口。
自定义端口的方式可以用两种方式来实现,第一种是在命令行运行脚本,采用如下方式:
python main.py 8090
另一种方式是按照上述代码的方式,重载web.application类。
- class MyApplication(web.application):
- def run(self, port=8080, *middleware):
- func = self.wsgifunc(*middleware)
- return web.httpserver.runsimple(func, ('0.0.0.0', port))
- if __name__ == "__main__":
- app = MyApplication(urls ,globals())
- app.run(port=8090)
- # -*- coding: utf-8 -*-
- """
- Created on Thu Aug 18 22:35:53 2022
- @author: Administrator
- """
-
- import requests
-
- def client_post(url, data):
- rep = requests.post(url, data=data)
- return rep.text
-
- if __name__ == '__main__':
- url1 = 'http://127.0.0.1:8090/server'
- url2 = 'http://127.0.0.1:8090/'
- data = {'key1': '测试', 'key2': 'test', 'key3': 1}
- res1 = client_post(url1, data)
- res2 = client_post(url2, data)
-
- print('127.0.0.1:8090/server(返回结果):', res1)
- print('127.0.0.1:8090/xxx(返回结果):', res2)
python客户端运行结果如下:
也可以在浏览器中输入网址:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。