Home:ALL Converter>Making use of CherryPy as webserver for flask application

Making use of CherryPy as webserver for flask application

Ask Time:2017-07-16T06:43:04         Author:Man Wa kileleshwa

Json Formatter

I have a simple flask application that works really well. I've been developing it separately from the main desktop application, I want to "plugin" the flask application into the main application. I also want to use cherrypy as the webserver as the default webserver that comes with flask is not production ready. I am not sure how to get both these to work together. My flask application code looks like this

from flask import Flask, render_template,send_from_directory
from scripts_data import test_data
from schedule_data import scheduledata
import os

app=Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/scripts')
def scripts():
    test_data=t_data()
    return render_template('scripts.html',data_scripts=test_data)

@app.route('/sch')
def schedules():
    data_schedule=s_data()
    return render_template('schedules.html',table_data=data_schedule)

if __name__=='__main__':
    app.run(debug=True)

so obviously as I want to integrate into the main application I can't use app.run. Its not clear how to swap out the flask webserver for the Cherrypy Webserver

I have seen the following

from flask import Flask
import cherrypy

app = Flask(__name__)
app.debug = True

Class setup_webserver(object):
@app.route("/") def hello(): return "Hello World!"

def run_server():

    # Mount the WSGI callable object (app) on the root directory
    cherrypy.tree.graft(app, '/')

    # Set the configuration of the web server
    cherrypy.config.update({
        'engine.autoreload_on': True,
        'log.screen': True,
        'server.socket_port': 5000,
        'server.socket_host': '0.0.0.0'
    })

    # Start the CherryPy WSGI web server
    cherrypy.engine.start()
    cherrypy.engine.block()


Class start_it_all(object)
import setup_webserver

        setup_webserver.run_server()

But when I start the webserver and go to the site (0.0.0.0:5000) I get a 404? I don't get the 404 when its just flask on its own. All I want to do is swap out the flask built-in webserver for the cherrpy webserver. I don't want to use cherrypy for anything else, as Flask will be the framework

Any suggestions? I'm on Windows and using python 2.7

Author:Man Wa kileleshwa,eproduced under the CC 4.0 BY-SA copyright license with a link to the original source and this disclaimer.
Link to original article:https://stackoverflow.com/questions/45123387/making-use-of-cherrypy-as-webserver-for-flask-application
yy