Below is a version of a bottle server that runs in a thread and can be told to shut down cleanly, based on this stackoverflow answer.
#coding: utf-8
from ui import *
import bottle, threading, requests, time
from bottle import Bottle, ServerAdapter
class MyWSGIRefServer(ServerAdapter):
server = None
def run(self, handler):
from wsgiref.simple_server import make_server, WSGIRequestHandler
if self.quiet:
class QuietHandler(WSGIRequestHandler):
def log_request(*args, **kw): pass
self.options['handler_class'] = QuietHandler
self.server = make_server(self.host, self.port, handler, **self.options)
self.server.serve_forever()
def stop(self):
self.server.shutdown()
app = Bottle()
@app.get('/')
def bottle_get_index():
return "Test OK"
if __name__ == '__main__':
w = WebView()
w.present('full_screen')
w.load_html('Loading...')
server = MyWSGIRefServer(port=80)
threading.Thread(group=None, target=app.run, name=None, args=(), kwargs={'server': server, 'quiet': False}).start()
time.sleep(2)
req = requests.get('http://127.0.0.1/')
w.load_html(req.text)
server.stop()