Lukeetah commited on
Commit
956b168
1 Parent(s): 0cd95f8

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -47
app.py CHANGED
@@ -1,9 +1,9 @@
1
  import os
2
  import pandas as pd
3
  import gradio as gr
4
- from flask import Flask, request
5
 
6
- ruta_candidatos = os.path.join(os.path.dirname(__file__), "Candidatos.txt")
7
  candidatos = {}
8
  with open(ruta_candidatos, "r") as f:
9
  for line in f:
@@ -11,53 +11,28 @@ with open(ruta_candidatos, "r") as f:
11
  candidato, partido = line.split(":")
12
  candidatos[candidato.strip()] = partido.strip()
13
 
14
- votos = pd.DataFrame(columns=["IP", "Candidato", "Votos", "Nombre"])
15
 
16
  app = Flask(__name__)
17
- access_granted = False
18
-
19
- @app.route("/")
20
- def index():
21
- iface = gr.Interface(
22
- fn=votacion,
23
- inputs=["text", gr.inputs.Radio(list(candidatos.keys()))],
24
- outputs="text",
25
- title="Elecciones Presidenciales 2023",
26
- description="Ingresa el nombre de tu amigo votante y selecciona un candidato."
27
- )
28
- return iface.launch(share=False)
29
-
30
- @app.route("/resultados", methods=["GET", "POST"])
31
- def resultados():
32
- global access_granted
33
-
34
- if request.method == "POST":
35
- password = request.form.get("password")
36
- if password == "notiene":
37
- access_granted = True
38
- else:
39
- access_granted = False
40
-
41
- if access_granted:
42
- return votos.to_html()
43
- else:
44
- return '''
45
- <form method="POST" action="/resultados">
46
- <input type="password" name="password" placeholder="Ingrese la contraseña" required>
47
- <button type="submit">Acceder</button>
48
- </form>
49
- '''
50
-
51
- def votacion(nombre_amigo, candidato):
52
- ip = request.headers["x-forwarded-for"] if "x-forwarded-for" in request.headers else request.remote_addr
53
- if ip in votos["IP"].values:
54
- return "Ya has votado."
55
- else:
56
- if candidato not in candidatos:
57
- return "Candidato no válido."
58
-
59
- votos.loc[len(votos)] = [ip, candidato, 1, nombre_amigo]
60
- return "Gracias por tu voto."
61
 
62
  if __name__ == "__main__":
63
  app.run()
 
1
  import os
2
  import pandas as pd
3
  import gradio as gr
4
+ from flask import Flask, request, jsonify
5
 
6
+ ruta_candidatos = 'Candidatos.txt'
7
  candidatos = {}
8
  with open(ruta_candidatos, "r") as f:
9
  for line in f:
 
11
  candidato, partido = line.split(":")
12
  candidatos[candidato.strip()] = partido.strip()
13
 
14
+ votos = pd.DataFrame(columns=["Candidato", "Votos"])
15
 
16
  app = Flask(__name__)
17
+
18
+ @app.route("/votacion", methods=["POST"])
19
+ def votacion():
20
+ nombre_amigo = request.form["nombre_amigo"]
21
+ candidato = request.form["candidato"]
22
+
23
+ if candidato not in candidatos:
24
+ return jsonify({"Resultado": "Candidato no válido."})
25
+
26
+ votos.loc[len(votos)] = [candidato, 1]
27
+ return jsonify({"Resultado": "Gracias por tu voto."})
28
+
29
+ @app.route("/candidatos", methods=["GET"])
30
+ def obtener_candidatos():
31
+ return jsonify(candidatos)
32
+
33
+ @app.route("/votos", methods=["GET"])
34
+ def obtener_votos():
35
+ return votos.to_json(orient="records")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
  if __name__ == "__main__":
38
  app.run()