Как устанить проблему с многопоточностью в python?

Есть код, в котором при нажатии на кнопку запускается сервер и зависает GUI, как сделать, чтобы сервер запустился и GUI продолжило работу?
from http.server import HTTPServer, CGIHTTPRequestHandler
import tkinter as tk

httpserver_address = ("", 80)
httpserver = HTTPServer(httpserver_address, CGIHTTPRequestHandler)

root = tk.Tk()
root.title('Server')
root.minsize(width = 20, height = 50)
root.maxsize(width = 20, height = 50)

buttonStart = tk.Button(root, text = "Start", width = 5, height = 1, bg = "#099a0f")
buttonStart.bind("<Button-1>", httpserver.serve_forever)
buttonStart.grid(row = 2, column = 0, columnspan = 1)

root.mainloop()
  • Вопрос задан
  • 383 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
import tkinter as tk
from threading import Thread
from http.server import HTTPServer, CGIHTTPRequestHandler

httpserver_address = ("", 80)
httpserver = HTTPServer(httpserver_address, CGIHTTPRequestHandler)

srv_thread = Thread(target=httpserver.serve_forever)

root = tk.Tk()
root.title('Server')
root.minsize(width = 20, height = 50)
root.maxsize(width = 20, height = 50)

buttonStart = tk.Button(root, text = "Start", width = 5, height = 1, bg = "#099a0f")
buttonStart.bind("<Button-1>", lambda event: srv_thread.start())
buttonStart.grid(row = 2, column = 0, columnspan = 1)

root.mainloop()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы