Python搭建简易web服务

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