How to properly terminate a flask web application that was launched in a separate thread? I found an incomplete answer that is not clear on how to do it. The script below starts a thread which in turn starts a flask application. When I press CTRL+C, something is not being terminated and the script never stops. It would be nice to add the code after except KeyboardInterrupt:
that terminates the app
and the thread_webAPP()
properly. I know how to terminate a thread, but first I need to terminate the app:
def thread_webAPP():
app = Flask(__name__)
@app.route("/")
def nothing():
return "Hello World!"
app.run(debug=True, use_reloader=False)
# hope that after app.run() is terminated, it returns here, so this thread could exit
t_webApp = threading.Thread(name='Web App', target=thread_webAPP)
t_webApp.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
print("exiting")
# Here I need to kill the app.run() along with the thread_webAPP