Paso 4: Código de Python
A continuación viene el código python. Poner en un archivo llamado radio.py
from flask import Flask from flask import render_template from flask import request import subprocess app = Flask(__name__) methods=['GET', 'POST']) def hello_world(name='Flask FM'): if request.method == 'POST': if request.form['submit'] == 'turn radio on': cmd=['mpc', 'play'] p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE) elif request.form['submit'] == 'turn radio off': cmd=['mpc', 'stop'] p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE) return render_template('interface.html', name=name) if __name__ == '__main__': app.run(host='0.0.0.0', port=1234, debug=True)
Primero hacer las importaciones necesarias para los procesos que vamos a necesitar. A continuación definimos una función con un parámetro llamado name. Instancias de esta variable con la cadena 'Frasco FM'. En la plantilla HTML de Jinja2, se llenará la variable {{nombre}} con esta cadena. Esto es sólo para usar como ejemplo para más adelante. Se llama a la función de hello_world() una vez que se ejecuta este código python. Si se está haciendo una solicitud POST, tenemos que enviar un comando de la CLI.
Recuerde que Python es muesca sensible, así que cuando copiar y pegar sobre el código, asegúrese de obtener las fichas derecha.
<form role="form" method='POST' action='/'> <input type="submit" name="submit" value="turn radio on" />
En el Jinja2 plantilla que definimos que el formulario debe hacer POST pide. El botón nombre 'Enviar' se corresponde con la request.form['submit'] en nuestro código python. El valor del botón, que es también su texto del botón, es el valor que nos busque.
if request.form['submit'] == 'turn radio on':
Si se presiona este botón, se ejecutará un subproceso.
cmd=['mpc', 'play'] p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
Que juega nuestro stream de música.
Volver a la CLI, ejecutar python archivo.
sudo python radio.py
Y vaya al IP o nombre de dominio de la Raspberry Pi en el puerto 1234.
Usted debe ver su plantilla Jinja2 con la variable de nombre y 2 botones que a su vez su radio encendido y apagado.