I try to create application based on web technology. The flask block main application. How to make it run in other thread or process. so, main process not get block. its better run in thread. cause, as user try to close main application, http server should stop too.
from flask import Flask
import tkinter
from multiprocessing import Process
import threading
app = Flask(__name__)
@app.route("/")
def hello_world():
return "<p>Hello, World!</p>"
server = None
def toggle():
match run_btn.cget("text"):
case "Start":
server = Process(app.run())
server.start()
case "Stop":
server.terminate()
if __name__ == "__main__":
root = tkinter.Tk()
run_btn = tkinter.Button(root, text = "Start", command = toggle)
run_btn.pack()
root.mainloop()