-
Notifications
You must be signed in to change notification settings - Fork 31
/
Copy pathapp.py
109 lines (89 loc) · 3.03 KB
/
app.py
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# -*- coding: utf-8 -*-
"""
Created on February 2023
@author: Albert ETPX
"""
# Importación de módulos externos
import mysql.connector
from flask import Flask,render_template,request;
# Funciones de backend #############################################################################
# connectBD: conecta a la base de datos users en MySQL
def connectBD():
db = mysql.connector.connect(
host = "localhost",
user = "root",
passwd = "claumestra",
database = "users"
)
return db
# initBD: crea una tabla en la BD users, con un registro, si está vacía
def initBD():
bd=connectBD()
cursor=bd.cursor()
# cursor.execute("DROP TABLE IF EXISTS users;")
# Operación de creación de la tabla users (si no existe en BD)
query="CREATE TABLE IF NOT EXISTS users(\
user varchar(30) primary key,\
password varchar(30),\
name varchar(30), \
surname1 varchar(30), \
surname2 varchar(30), \
age integer, \
genre enum('H','D','NS/NC')); "
cursor.execute(query)
# Operación de inicialización de la tabla users (si está vacía)
query="SELECT count(*) FROM users;"
cursor.execute(query)
count = cursor.fetchall()[0][0]
if(count == 0):
query = "INSERT INTO users \
VALUES('user01','admin','Ramón','Sigüenza','López',35,'H');"
cursor.execute(query)
bd.commit()
bd.close()
return
# checkUser: comprueba si el par usuario-contraseña existe en la BD
def checkUser(user,password):
bd=connectBD()
cursor=bd.cursor()
query=f"SELECT user,name,surname1,surname2,age,genre FROM users WHERE user='{user}'\
AND password='{password}'"
print(query)
cursor.execute(query)
userData = cursor.fetchall()
bd.close()
if userData == []:
return False
else:
return userData[0]
# cresteUser: crea un nuevo usuario en la BD
def createUser(user,password,name,surname1,surname2,age,genre):
return
# Secuencia principal: configuración de la aplicación web ##########################################
# Instanciación de la aplicación web Flask
app = Flask(__name__)
# Declaración de rutas de la aplicación web
@app.route("/")
def home():
return render_template("home.html")
@app.route("/login")
def login():
initBD()
return render_template("login.html")
@app.route("/signin")
def signin():
return "SIGN IN PAGE"
@app.route("/results",methods=('GET', 'POST'))
def results():
if request.method == ('POST'):
formData = request.form
user=formData['usuario']
password=formData['contrasena']
userData = checkUser(user,password)
if userData == False:
return render_template("results.html",login=False)
else:
return render_template("results.html",login=True,userData=userData)
# Configuración y arranque de la aplicación web
app.config['TEMPLATES_AUTO_RELOAD'] = True
app.run(host='localhost', port=5000, debug=True)