prodelectoral / app.py
Lukeetah's picture
Upload 2 files
5c6b7b0
raw
history blame
No virus
1.98 kB
import os
import pandas as pd
# Instalar Flask
os.system("pip install --upgrade -r requirements.txt")
from flask import Flask, request
# Ruta del archivo de candidatos
ruta_candidatos = os.path.join(os.path.dirname(__file__), "Candidatos.txt")
# Leer los candidatos desde el archivo
candidatos = {}
with open(ruta_candidatos, "r") as f:
for line in f:
if line.strip():
candidato, partido = line.split(":")
candidatos[candidato.strip()] = partido.strip()
# Crear base de datos de votos
votos = pd.DataFrame(columns=["IP", "Candidato", "Votos", "Nombre"])
# Crear la aplicaci贸n Flask
app = Flask(__name__)
# Ruta para la interfaz de votaci贸n
@app.route("/")
def votacion():
ip = request.remote_addr
if ip in votos["IP"].values:
return "Ya has votado."
else:
return f'''
<h1>Elecciones Presidenciales 2023</h1>
<h2>Candidatos:</h2>
<ul>
{''.join(f"<li>{candidato} - {partido}</li>" for candidato, partido in candidatos.items())}
</ul>
<form action="/votar" method="post">
<label for="candidato">Elige tu candidato:</label>
<select name="candidato" id="candidato">
{''.join(f"<option value='{candidato}'>{candidato}</option>" for candidato in candidatos.keys())}
</select>
<br>
<label for="nombre">Tu nombre:</label>
<input type="text" name="nombre" id="nombre">
<br>
<input type="submit" value="Votar">
</form>
'''
# Ruta para procesar los votos
@app.route("/votar", methods=["POST"])
def procesar_voto():
ip = request.remote_addr
candidato = request.form.get("candidato")
nombre = request.form.get("nombre")
votos = votos.append({"IP": ip, "Candidato": candidato, "Votos": 1, "Nombre": nombre}, ignore_index=True)
return "Gracias por tu voto."
# Ejecutar la aplicaci贸n Flask
if __name__ == "__main__":
app.run()