test_app/app.py

34 lines
789 B
Python

from flask import Flask, render_template, jsonify
import threading
import time
app = Flask(__name__)
current_state = "red"
lock = threading.Lock()
def reset_to_red():
global current_state
time.sleep(10)
with lock:
current_state = "red"
@app.route("/")
def index():
return render_template("site_template.j2", state=current_state)
@app.route("/status")
def status():
return jsonify({"state": current_state})
@app.route("/toggle", methods=["POST"])
def toggle():
global current_state
with lock:
if current_state != "green":
current_state = "green"
threading.Thread(target=reset_to_red, daemon=True).start()
return jsonify({"state": current_state})
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8000)