Warum kann ich meinen HTML- Code nicht mit meinem Python- Code verbinden?
Hallo,
ich wollte meinen Python- Code mit meinem HTML- Code verbinden, damit, wenn mein Wake- Word "Luna" erkannt wurde, ein div in der Datei index.html seine Farbe ändert. Hier ist der Code:
Python:
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
app = Flask(__name__)
app.config['SECRET_KEY'] = 'luna_secret1984773249523'
socketio = SocketIO(app)
@socketio.on('connect')
def handle_connect():
emit('message', {'data': 'Connected'})
@socketio.on('start_listening')
def start_listening():
if detect_wake_word():
emit('color_change', {'color': 'red'})
@app.route('/')
def index():
return render_template('output.html')
HTML /CSS:
... #color_div {
width: 100%;
height: 100%;
position: absolute;
background-color: green;
}
</style>
</head>
<body>
<div id="color_div"></div>
JavaScript:
... // FLASK
var socket = io();
socket.on('connect', function() {
socket.emit('start_listening');
});
socket.on('color_change', function(msg) {
document.getElementById('color_div').style.backgroundColor = msg.color;
});
</script>
</body>
</html>
"""
with open("output.html", "w") as html_file:
html_file.write(html_content)
return "output.html"
Wenn ich den Code aber ausführe und "Luna" sage, ändert der Div nicht seine Farbe. Woran liegt das?
Freundliche Grüsse
1 Antwort
Nutzer, der sehr aktiv auf gutefrage ist
Wahrscheinlich geht es nicht, weil du die Funktion zum erkennen vom Wort nur aufrufst wenn der Client start_listening sendet, allerdings wird dies ja nur einmal nachdem die Verbindung hergestellt wurde gesendet.
Vielen Dank für deine Antwort! Ich werde es nochmal anschauen.