Python从门到精通(七):网络-02-创建Rest服务接口(python调用rest接口)

网友投稿 281 2022-08-26


Python从门到精通(七):网络-02-创建Rest服务接口(python调用rest接口)

本章主要使用cgi库,原生写法一般时候不常用。可以用Flask框架来实现。

创建接口服务

import cgidef not_found_404(environ, start_response): start_response('404 Not Found', [ ('Content-type', 'text/plain') ]) return [b'Not Found']class PathDispatcher: def __init__(self): self.pathmap = { } def __call__(self, environ, start_response): path = environ['PATH_INFO'] params = cgi.FieldStorage(environ['wsgi.input'], environ=environ) method = environ['REQUEST_METHOD'].lower() environ['params'] = { key: params.getvalue(key) for key in params } handler = self.pathmap.get((method,path), not_found_404) return handler(environ, start_response) def register(self, method, path, function): self.pathmap[method.lower(), path] = function return function

创建接口处理类

import time_hello_resp = '''\ Hello {name}

Hello {name}!

'''def hello_world(environ, start_response): start_response('200 OK', [ ('Content-type','text/html')]) params = environ['params'] resp = _hello_resp.format(name=params.get('name')) yield resp.encode('utf-8')_localtime_resp = '''\'''def local_time(environ, start_response): start_response('200 OK', [ ('Content-type', 'application/xml') ]) resp = _localtime_resp.format(t=time.localtime()) yield resp.encode('utf-8')if __name__ == '__main__': from rest_exp import PathDispatcher from wsgiref.simple_server import make_server # Create the dispatcher and register functions dispatcher = PathDispatcher() dispatcher.register('GET', '/hello', hello_world) dispatcher.register('GET', '/localtime', local_time) # Launch a basic server = make_server('', 8080, dispatcher) print('Serving on port 8080...') requestsreq = requests.get('text:\n{req.text}')req = requests.get('text:\n{req.text}')


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot数据校验功能的实现
下一篇:Python从门到精通(七):网络-01-与HTTP交互
相关文章

 发表评论

暂时没有评论,来抢沙发吧~