通过执行python -m http.server
,您可以调用一个简单的web服务器,该服务器为目录中的文件提供服务。
我的问题是如何使用BaseHTTPRequestHandler 来创建多个API端点
例如,如果我要在api目录中创建一个名为"helloworld.py"的文件,代码为:
from http.server import BaseHTTPRequestHandler
class app(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header(“Content-type”, “text/plain”)
self.end_headers()
self.wfile.write(b”Hello World”)
return
访问的http://localhost/api/helloworld
将显示文本Hello World。
有办法做到这一点吗?
TL;DR如何将BaseHTTPRequestHandler函数合并到http.server中,并将其作为后端处理程序执行?
谢谢!
您可以使用regex检查self.path
是否有所需的端点。它也可以应用于do_POST
。
import re
from http.server import BaseHTTPRequestHandler, HTTPServer
class app(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-type','text/html')
self.end_headers()
if re.search('/api/helloworld', self.path):
message = "Hello, World"
self.wfile.write(bytes(message, "utf8"))
with HTTPServer(('', 8000), app) as server:
server.serve_forever()
python helloworld.py
将无限期运行服务器,然后
$ curl localhost:8000/api/helloworld
Hello, World%