File size: 1,963 Bytes
ef306b3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import pandas as pd
from google.colab import drive
from flask import Flask, request

# Montar Google Drive
drive.mount('/content/drive')

# Ruta del archivo de candidatos
ruta_candidatos = "/content/drive/MyDrive/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()