from __future__ import annotations import http.server import subprocess import sys from pathlib import Path BASE_DIR = Path(__file__).resolve().parent PORT = 8765 class Handler(http.server.SimpleHTTPRequestHandler): def __init__(self, *args, **kwargs): super().__init__(*args, directory=str(BASE_DIR), **kwargs) def do_POST(self): if self.path != "/refresh": self.send_error(404) return proc = subprocess.run( [sys.executable, str(BASE_DIR / "generate_fundamental_dashboard.py")], cwd=str(BASE_DIR), text=True, capture_output=True, ) body = (proc.stdout or "") + (proc.stderr or "") self.send_response(200 if proc.returncode == 0 else 500) self.send_header("Access-Control-Allow-Origin", "*") self.send_header("Content-Type", "text/plain; charset=utf-8") self.end_headers() self.wfile.write(body.encode("utf-8", errors="replace")) def end_headers(self): self.send_header("Access-Control-Allow-Origin", "*") super().end_headers() if __name__ == "__main__": server = http.server.ThreadingHTTPServer(("127.0.0.1", PORT), Handler) print(f"http://127.0.0.1:{PORT}/基本面评分面板.html") server.serve_forever()