File size: 1,981 Bytes
27526d0
 
f137a2e
 
5c6b7b0
f137a2e
27526d0
ef306b3
27526d0
 
ef306b3
27526d0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f137a2e
27526d0
 
 
 
 
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
63
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()