from http.server import HTTPServer, BaseHTTPRequestHandler
 
 
# Jednoduchá databáze
database = {1: ["Karel", "Novy"], 2: ["Marek", "Modry"]}
 
def print_database() -> None:
    print("\n")
    print(f"{'ID':<5} | {'Name':<10} | {'Lastname':<10}")
    print("-" * 31)
 
    for key, value in database.items():
        print(f"{key:<5} | {value[0]:<10} | {value[1]:<10}")
    print("\n")
 
# Vlastní třída pro zpracování HTTP požadavků
class MyHandler(BaseHTTPRequestHandler):
    def do_GET(self) -> None:
 
        self.send_response(200)
        self.send_header("Content-type", "text/html")
        self.end_headers()
 
        # Zpracování požadavků na zobrazení databáze
        self.wfile.write(b"<h1>Database:</h1>")
        self.wfile.write(b"<table border='1'><tr><th>ID</th><th>Name</th><th>Lastname</th></tr>")
        for key, value in database.items():
            self.wfile.write(f"<tr><td>{key}</td><td>{value[0]}</td><td>{value[1]}</td></tr>".encode('utf-8'))
        self.wfile.write(b"</table>")
 
    def do_POST(self) -> None:
 
        # Získání délky těla požadavku (velikost dat)
        content_length = int(self.headers['Content-Length'])
        post_data = self.rfile.read(content_length)
 
        # Decoding a zpracování přijatých dat
        msg = post_data.decode('utf-8')
        print(f"Přijato: {msg}")
 
        self.send_response(200)
        self.send_header("Content-type", "text/html")
        self.end_headers()
        
        #pro jednoduchost predpokladame ze zprava ma spravny format
        if msg not in [f"{value[0]} {value[1]}" for value in database.values()]:
                new_id = len(database) + 1
                first_name, last_name = msg.split(" ", 1)
                database[new_id] = [first_name, last_name]
                self.wfile.write(b"Data byla ulozena.")
        else:
            self.wfile.write(b"Jmeno je jiz v databazi.")
 
# Funkce pro spuštění serveru
def start_server():
    global server_running
    
    # Tisk databáze
    print_database()
 
    # Vytvoření HTTP serveru na localhostu a portu 8080
    server = HTTPServer(('localhost', 8080), MyHandler)
    print("Server běží na portu 8080...")
    server.serve_forever()
 
# Spuštění serveru
if __name__ == "__main__":
    start_server()```