diff options
Diffstat (limited to 'lib/server.py')
| -rw-r--r-- | lib/server.py | 38 |
1 files changed, 27 insertions, 11 deletions
diff --git a/lib/server.py b/lib/server.py index e0f3140..8506c7a 100644 --- a/lib/server.py +++ b/lib/server.py @@ -1,10 +1,14 @@ from flask import Flask from flask import abort, redirect, url_for, request, jsonify -from cherrypy import wsgiserver + import sys, os +import cherrypy +from paste.translogger import TransLogger + sys.path.append("./lib") from pb import * from config import SERVER_HOST, SERVER_PORT +#http://flask.pocoo.org/docs/0.10/deploying/fastcgi/ this should be the one class InvalidUsage(Exception): status_code = 400 @@ -28,7 +32,7 @@ class Server(object): @self.app.route('/test', methods=['GET']) def test(): return "HELLO WORLD!" - @self.app.route('/<pb_classname>', methods=['POST']) + @self.app.route('/im/api/<pb_classname>', methods=['POST']) def pb(pb_classname): return self._response_post(pb_classname, request.form.to_dict()) @@ -41,7 +45,7 @@ class Server(object): self._classname_aliases = { 'generate' : 'PbGenerate', 'imgrid' : 'PbGrid', - 'imbreak' : 'PbBreak', + 'imbreak' : 'PbBreaker', 'impattern' : 'PbPattern', 'imgradient' : 'PbGradient', 'landscape' : 'PbLandscape', @@ -74,19 +78,31 @@ class Server(object): raise; return jsonify({ 'error' : 'Request could not be processed' }) - def run(self): - self.app.run() + def run(self, host=SERVER_HOST, port=SERVER_PORT): + self.app.run(host=host, port=port) + +#http://fgimian.github.io/blog/2012/12/08/setting-up-a-rock-solid-python-development-web-server/ 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() + # Enable WSGI access logging via Paste + app_logged = TransLogger(self.app) + + # Mount the WSGI callable object (app) on the root directory + cherrypy.tree.graft(app_logged, '/') + + # Set the configuration of the web server + cherrypy.config.update({ + 'engine.autoreload_on': True, + 'log.screen': True, + 'server.socket_port': server_port, + 'server.socket_host': host + }) + cherrypy.engine.start() + cherrypy.engine.block() + def stop(self): if self._wsgi_server: - self._wsgi_server.stop() - self._wsgi_server = None return else: return |
