diff options
Diffstat (limited to 'lib/server.py')
| -rw-r--r-- | lib/server.py | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/lib/server.py b/lib/server.py index 00bae9f..e0f3140 100644 --- a/lib/server.py +++ b/lib/server.py @@ -1,8 +1,10 @@ from flask import Flask from flask import abort, redirect, url_for, request, jsonify +from cherrypy import wsgiserver import sys, os sys.path.append("./lib") -from Pb import * +from pb import * +from config import SERVER_HOST, SERVER_PORT class InvalidUsage(Exception): status_code = 400 @@ -22,6 +24,10 @@ class InvalidUsage(Exception): class Server(object): def __init__(self): self.app = Flask(__name__) + self._wsgi_server = None + @self.app.route('/test', methods=['GET']) + def test(): + return "HELLO WORLD!" @self.app.route('/<pb_classname>', methods=['POST']) def pb(pb_classname): return self._response_post(pb_classname, request.form.to_dict()) @@ -71,3 +77,16 @@ class Server(object): def run(self): self.app.run() + def run_wsgi(self, server_port=SERVER_PORT, host=SERVER_HOST): + d = wsgiserver.WSGIPathInfoDispatcher({'/': self.app}) + sys.stderr.write("Starting a wsgi server on %s port %s\n" % (host, server_port)) + self._wsgi_server = wsgiserver.CherryPyWSGIServer(('0.0.0.0', server_port), d) + self._wsgi_server.start() + + def stop(self): + if self._wsgi_server: + self._wsgi_server.stop() + self._wsgi_server = None + return + else: + return |
