light / app.py
manhteky123's picture
Update app.py
8aceaed verified
from flask import Flask, render_template, jsonify, request
from flask_cors import CORS
app = Flask(__name__)
CORS(app, resources={r"/api/*": {"origins": "*"}})
# Thêm security headers cho HF Spaces
@app.after_request
def after_request(response):
response.headers.add('Access-Control-Allow-Origin', '*')
response.headers.add('Access-Control-Allow-Headers', 'Content-Type')
response.headers.add('Access-Control-Allow-Methods', 'GET,POST,OPTIONS')
return response
# Trạng thái đèn (lưu trong memory, có thể thay bằng database)
light_status = {
'on': False
}
@app.route('/')
def index():
"""Trang chủ với giao diện điều khiển đèn"""
return render_template('index.html')
@app.route('/api/light/status/', methods=['GET'])
def get_light_status():
"""API lấy trạng thái đèn hiện tại"""
return jsonify({
'status': 'on' if light_status['on'] else 'off',
'on': light_status['on']
})
@app.route('/api/light/toggle', methods=['POST'])
def toggle_light():
"""API bật/tắt đèn"""
light_status['on'] = not light_status['on']
return jsonify({
'status': 'on' if light_status['on'] else 'off',
'on': light_status['on'],
'message': 'Đèn đã bật' if light_status['on'] else 'Đèn đã tắt'
})
@app.route('/api/light/on', methods=['POST'])
def turn_on():
"""API bật đèn"""
light_status['on'] = True
return jsonify({
'status': 'on',
'on': True,
'message': 'Đèn đã bật'
})
@app.route('/api/light/off', methods=['POST'])
def turn_off():
"""API tắt đèn"""
light_status['on'] = False
return jsonify({
'status': 'off',
'on': False,
'message': 'Đèn đã tắt'
})
if __name__ == '__main__':
app.run(debug=False, host='0.0.0.0', port=7860)