WSGI实现简单的接口请求服务

本文介绍了如何使用Python自带的WSGIref模块快速实现简单的HTTP接口请求服务。通过创建服务器、控制器和视图,实现了GET和POST请求的处理,为后续添加更多请求类型和URL提供了基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1>前言

       最近工作需要用到http请求,类似实现一些需求如平台组装命令,下发给终端,终端即时处理并返回结果等,起初可能会想起用Django或者Flask框架去做,当然,这是功能及其强大的框架去做肯定是没啥问题了,但是但凡设计到框架,环境搭建可能就会耗费很多时间,并且考虑到这一次请求量较小且时间紧急,直接用python自带的WSGIref模块实现下,顺便温故而知新嘛,其实就是参考之前的文章,重新做了下知识整理 https://blog.csdn.net/huangql517/article/details/8095347,毕竟光学不用,是很容忘记的。

2>正题

原理其实很简单,我们之前套接字通信就是建立TCP长连接,一直等待用户请求,然后相应,WSGIref也是,绑定IP和端口之后,

开启监听等待请求,只是它把HTTP请求的消息做好了解析,变成我们能轻易理解且取值方便的数据,这样,我们得到了请求类型,请求数据,就知道些处理逻辑就行了。

代码如下:MVC思想,

没几行代码,开启server.py,就一直监听请求, 用户发请求过来,会去controller里面找对应地址的处理函数,

处理函数实体就在view.py下面,最终,返回处理函数的结果或者找不到路径的 404报错。

效果如下:

get请求

post请求--传参

post请求--返回

非法地址

这样, 一个http请求的框架“雏形”就出来了,可以基于此基础上,继续完善“PUT”“DELETE”等其他请求类型,要加请求URL,就先在controller添加路由,也是就路径对应的函数,然后view视图编写这个函数,就可以了。

3>再次总结

3.1> server.py  ----make_server 创建好了socket对象,serve_forever就一直等待用户的请求,

    若收到请求,则调取 application函数处理(注意,这个函数并不是我们自己去调,这两个参数我们是没法提供的,而是由

    WSGI服务器来调,python的wsgiref模块也就是一个内置的WSGI服务器)

3.2> controller.py  ----application函数处理请求,先解析path,若path在控制/转发里面,就调用对应的函数处理,若不在,就返回其他报错信息

3.3> view.py  ----视图函数里面再区分是什么请求类型(get,post...),根据不同的类型返回不同的值

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值