Source code for mathviz_hopper.src.server_helpers

#!/usr/bin/env python
import json
from bottle import Bottle, ServerAdapter
from bottle import route, run, post, request
import threading
import time

[docs]class MyWSGIRefServer(ServerAdapter): server = None
[docs] 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()
[docs] def stop(self): # self.server.server_close() <--- alternative but causes bad fd exception print "shutting down" self.server.shutdown()
if __name__ == '__main__': app = Bottle() @app.route('/settings') def hello(): return json.dumps({"test": 8}) @app.route('/query', method='POST') def query(): print "query" print json.loads(request.body.read()).get("query") # print request.json.get("query") return "null" server = MyWSGIRefServer(host="localhost", port=8088) def begin(): run(app, server=server) begin() # threading.Thread(target=begin).start() # time.sleep(10) # Shut down server after 2 seconds # server.stop()