0

How do I get Cherrypy to display a figure generated by matplotlib?

This is my code so far, but it's generating a 404:

import cherrypy
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
from io import BytesIO


class Root(object):
    @cherrypy.expose
    def index(self):
            return """
<html>
<body>
<p>Yo!</p>
            <form method="get" action="generate">
              <p>Testerr</p>
              Start: <input type="text" value="010115" name="start" />
              <button type="submit">Go!</button>
            </form>
<body>
<html>
"""
    @cherrypy.expose
    def generate(self, start):
        cherrypy.response.headers['Content-Type'] = "image/png"
        fig = plt.figure()
        plt.plot([1,2,3,4])

        figdata=BytesIO()
        fig.savefig(figdata, format='png')

        imdata = figdata.getvalue()
        return imdata


cherrypy.config.update({
    'environment': 'production',
    'log.screen': False,
    'server.socket_host': '127.0.0.1',
    'server.socket_port': 18892,
})
cherrypy.quickstart(Root())
jordeu
  • 6,711
  • 1
  • 19
  • 19
Charon
  • 2,344
  • 6
  • 25
  • 44

0 Answers0