⬑
Python搭建简易web服务
优点:
- 只依赖标准库,开发部署简便
缺点:
- 功能有限
- 性能差
示例:
import http.server
import socketserver
import subprocess
import json
import re
PORT = 28888
def hdr1():
return "hello"
def hdr2():
return "bye~"
class RequestHandler(http.server.BaseHTTPRequestHandler):
def do_GET(self):
if self.path == '/api-1':
handler = hdr1
elif self.path == '/api-2':
handler = hdr2
else:
self.send_response(404)
self.send_header("Content-type", "text/plain")
self.end_headers()
self.wfile.write(b"404 - Not Found")
return
try:
output = handler()
status_code = 200
except Exception as e:
print("error: " + repr(e))
output = f"failed: {e}"
status_code = 500
self.send_response(status_code)
self.send_header("Content-type", "application/json")
self.end_headers()
self.wfile.write(output.encode("utf-8"))
class MyServer(socketserver.TCPServer):
allow_reuse_address = True
try:
with MyServer(("", PORT), RequestHandler) as httpd:
print(f"Serving at port {PORT}")
httpd.serve_forever()
except KeyboardInterrupt:
print("\nServer is shutting down...")
httpd.server_close()