python web.py服务器与客户端的实现示例

 更新时间:2025年10月28日 11:47:09   作者:Coding的叶子  
本文介绍了使用Python的web.py库搭建一个简单的Web服务器,并演示了自定义端口、URL映射以及POST和GET请求的处理,具有一定的参考价值,感兴趣的可以了解一下

web.py是python中一个相对容易上手的web服务器搭建工具。

1 安装方式

web.py可以直接通过pip install 的方式安装即可,即:

pip install web.py

2 服务器

2.1 完整程序

# -*- 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)

2.2 url页面与响应类

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类
        )

2.3 自定义端口

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)

3 客户端

3.1 完整程序

# -*- 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)

4 测试结果

4.1 客户端测试

python客户端运行结果如下:

也可以在浏览器中输入网址:

 

4.2 服务器端测试结果

到此这篇关于python web.py服务器与客户端的实现示例的文章就介绍到这了,更多相关python web.py服务器与客户端内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python探索之ModelForm代码详解

    Python探索之ModelForm代码详解

    这篇文章主要介绍了Python探索之ModelForm代码详解,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • Python定时器实例代码

    Python定时器实例代码

    这篇文章主要介绍了Python定时器实例代码,向大家分享了两部分代码示例,一个是通过线程实现定时器timer,另一个是Python实现的精度可调的定时器实例,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Pygame改编飞机大战制作兔子接月饼游戏

    Pygame改编飞机大战制作兔子接月饼游戏

    一年中秋又快到了,今年加入了Python的学习行列,得益于Python的开发效率和易读性,网上写文章的次数多了起来,既然是中秋节那肯定要搞个应景的游戏才行
    2022-09-09
  • 使用python提取PowerPoint幻灯片中表格并保存到文本及Excel文件

    使用python提取PowerPoint幻灯片中表格并保存到文本及Excel文件

    owerPoint作为广泛使用的演示工具,常被用于展示各类数据报告和分析结果,其中,表格以其直观性和结构性成为阐述数据关系的不二之选,本文将介绍如何使用Python来提取PowerPoint幻灯片中的表格,并将表格数据写入文本文件以及Excel文件,需要的朋友可以参考下
    2024-06-06
  • 在PyCharm中打包Python项目并将其运行到服务器上的方法(推荐)

    在PyCharm中打包Python项目并将其运行到服务器上的方法(推荐)

    在PyCharm中打包Python项目并运行到服务器上,主要步骤包括:创建并设置项目、编写项目代码、打包项目、配置服务器环境、上传可执行文件到服务器以及运行项目,通过这些步骤,可以将Python项目打包并部署到服务器上
    2024-11-11
  • python计算寄送包裹重量的实现过程

    python计算寄送包裹重量的实现过程

    要实现这样一个需求寄送包裹小于5kg,每公斤0.5元,大于等于5kg,超出5公斤部分,按照每公斤0.8元计算,输入重量,输出应付金额,下面小编给大家分享实现代码,感兴趣的朋友跟随小编一起看看吧
    2022-02-02
  • python使用pil进行图像处理(等比例压缩、裁剪)实例代码

    python使用pil进行图像处理(等比例压缩、裁剪)实例代码

    这篇文章主要介绍了python使用pil进行图像处理(等比例压缩、裁剪)实例代码,首先介绍了pil的相关内容,然后分享了实例代码,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • pandas中merge()函数的用法解读

    pandas中merge()函数的用法解读

    这篇文章主要介绍了pandas中merge()函数的用法解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 如何使用python进行pdf文件分割

    如何使用python进行pdf文件分割

    这篇文章主要介绍了如何使用python进行pdf文件分割,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Python如何把不同类型数据的json序列化

    Python如何把不同类型数据的json序列化

    这篇文章主要介绍了Python如何把不同类型数据的json序列化,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-04-04

最新评论