-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.py
36 lines (27 loc) · 1.01 KB
/
server.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from http.server import SimpleHTTPRequestHandler
from urllib.parse import urlparse, parse_qs
import socketserver
from app.render.renderTable import render_table, render_graphics
PORT = 8000
class MyHandler(SimpleHTTPRequestHandler):
def do_GET(self):
parsed_url = urlparse(self.path)
query_params = parse_qs(parsed_url.query)
if parsed_url.path == '/api/render':
content_type = query_params.get('type', [''])[0]
if content_type == 'table':
content = render_table()
elif content_type == 'graphics':
content = render_graphics()
else:
content = ''
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
self.wfile.write(content.encode())
else:
super().do_GET()
Handler = MyHandler
with socketserver.TCPServer(("", PORT), Handler) as httpd:
print("Serving at port", PORT)
httpd.serve_forever()