necesito crear una sala de cine en la cual se muestre los puestos ocupados y los desocupados ahora bien necesito colocarle un servidor a este sistema
Puedes crear un sistema de gestión de asientos para una sala de cine utilizando Python y un servidor web como Flask o Django. A continuación, te proporciono un ejemplo básico de cómo podrías implementar esto utilizando Flask. **Requisitos** * Python 3.x * Flask * SQLite (o cualquier otro motor de base de datos) **Instalación de dependencias** ```bash pip install flask pip install flask_sqlalchemy ``` **Código del servidor** ```python from flask import Flask, render_template, request from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///asientos.db' db = SQLAlchemy(app) class Asiento(db.Model): id = db.Column(db.Integer, primary_key=True) fila = db.Column(db.String(10), nullable=False) columna = db.Column(db.String(10), nullable=False) ocupado = db.Column(db.Boolean, nullable=False, default=False) @app.route('/') def index(): asientos = Asiento.query.all() return render_template('index.html', asientos=asientos) @app.route('/reservar', methods=['POST']) def reservar(): fila = request.form['fila'] columna = request.form['columna'] asiento = Asiento.query.filter_by(fila=fila, columna=columna).first() if asiento: asiento.ocupado = True db.session.commit() return 'Asiento reservado con éxito' else: return 'Asiento no encontrado' @app.route('/liberar', methods=['POST']) def liberar(): fila = request.form['fila'] columna = request.form['columna'] asiento = Asiento.query.filter_by(fila=fila, columna=columna).first() if asiento: asiento.ocupado = False db.session.commit() return 'Asiento liberado con éxito' else: return 'Asiento no encontrado' if __name__ == '__main__': db.create_all() app.run(debug=True) ``` **Código del cliente (HTML)** ```html <!DOCTYPE html> <html> <head> <title>Sala de cine</title> </head> <body> <h1>Sala de cine</h1> <table> <tr> <th>Fila</th> <th>Columna</th> <th>Ocupado</th> </tr> {% for asiento in asientos %} <tr> <td>{{ asiento.fila }}</td> <td>{{ asiento.columna }}</td> <td>{{ asiento.ocupado | ternary('Sí', 'No') }}</td> <td> {% if asiento.ocupado %} <form action="/liberar" method="post"> <input type="hidden" name="fila" value="{{ asiento.fila }}"> <input type="hidden" name="columna" value="{{ asiento.columna }}"> <input type="submit" value="Liberar"> </form> {% else %} <form action="/reservar" method="post"> <input type="hidden" name="fila" value="{{ asiento.fila }}"> <input type="hidden" name="columna" value="{{ asiento.columna }}"> <input type="submit" value="Reservar"> </form> {% endif %} </td> </tr> {% endfor %} </table> </body> </html> ``` **Explicación** * El servidor utiliza Flask para crear un servidor web que se comunica con un motor de base de datos SQLite. * La clase `Asiento` representa un asiento en la sala de cine, con atributos `fila`, `columna` y `ocupado`. * El servidor tiene tres rutas: `/` para mostrar la lista de asientos, `/reservar` para reservar un asiento y `/liberar` para liberar un asiento. * El cliente es una página web que muestra la lista de asientos y permite al usuario reservar o liberar un asiento. **Nota** * Este es un ejemplo básico y no incluye validación de datos ni seguridad. * Es importante implementar medidas de seguridad para proteger la base de datos y evitar ataques de inyección de código. * Es recomendable utilizar un motor de base de datos más robusto que SQLite, como PostgreSQL o MySQL.