def registro(): if request.method == 'GET': # Si entré por "GET" es porque acabo de cargar la página try: return render_template('registro.html') except: return jsonify({'trace': traceback.format_exc()}) if request.method == 'POST': try: # Obtener del HTTP POST JSON los pulsos nombre = str(request.form.get('name')) pulsos = str(request.form.get('heartrate')) if(nombre is None or pulsos is None or pulsos.isdigit() is False): # Datos ingresados incorrectos return Response(status=400) time = datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f") heart.insert(time, nombre, int(pulsos)) # Como respuesta al POST devolvemos el gráfico # de pulsacionesde la persona time, heartrate = heart.chart(nombre) # Crear el grafico que se desea mostrar fig, ax = plt.subplots(figsize=(16, 9)) ax.plot(time, heartrate) ax.get_xaxis().set_visible(False) output = plot_to_canvas(fig) encoded_img = base64.encodebytes(output.getvalue()) plt.close(fig) # Cerramos la imagen para que no consuma memoria del sistema return Response(encoded_img, mimetype='image/png') except: return jsonify({'trace': traceback.format_exc()})
def pulsaciones_historico(name): try: # Obtener el nombre en minúscula name = name.lower() # Obtener el historial de la persona de la DB print("Obtener gráfico de la persona", name) time, heartrate = heart.chart(name) # Transformar los datos en una imagen HTML con matplotlib image_html = utils.graficar(time, heartrate) return Response(image_html.getvalue(), mimetype='image/png') except: return jsonify({'trace': traceback.format_exc()})
def pulsaciones_historico(name): try: # Obtener el historial de la persona time, heartrate = heart.chart(name) # Crear el grafico que se desea mostrar fig, ax = plt.subplots(figsize=(16, 9)) ax.plot(time, heartrate) ax.get_xaxis().set_visible(False) output = plot_to_canvas(fig) plt.close(fig) # Cerramos la imagen para que no consuma memoria del sistema return Response(output.getvalue(), mimetype='image/png') except: return jsonify({'trace': traceback.format_exc()})
def pulsaciones_historico(name): try: # Obtener el historial de la persona time, heartrate = heart.chart(name) # Crear el grafico que se desea mostrar fig, ax = plt.subplots(figsize=(16, 9)) ax.plot(time, heartrate) ax.get_xaxis().set_visible(False) # Convertir ese grafico en una imagen para enviar por HTTP # y mostrar en el HTML output = io.BytesIO() FigureCanvas(fig).print_png(output) return Response(output.getvalue(), mimetype='image/png') except: return jsonify({'trace': traceback.format_exc()})