Using Flask web app as Windows application
<p>We have a web application developed using Flask that runs on a Windows server with clients that connect to it.  We now have a use case where it is desired that the server and client be combined onto a laptop so that both server and client code run together and make it appear as a native Windows application.</p>

<p>Basically, we now have two requirements that we did not have before:
1. Must be able to launch the browser from within Python.
2. Must be able to terminate the Python (Flask) application on browser window close.</p>

<p>We have succeeded in item 1.  Item 2 remains elusive.  We have tried terminating the werkzeug server but the Python code keeps running.  Seeking help from those that know.</p>

<p>After reading the docs more thoroughly and experimenting with the implementation, we found the following main code to satisfy the objective.</p>

<pre><code>from multiprocessing import Process, freeze_support


def run_browser():
    import webbrowser
    chrome = webbrowser.get(r'C:\\Program\ Files\ (x86)\\Google\\Chrome\\Application\\chrome.exe --window-size=500,500 --app=%s')
    chrome.open('http://localhost:5000/gui')

def run_app():
    from app import webapp
    webapp.run() #debug=True) #, use_reloader=False)

if __name__ == '__main__':
    freeze_support()

    a = Process(target=run_app)
    a.daemon = True
    a.start()

    b = Process(target=run_browser)
    b.start()
    b.join()
</code></pre>

python flask