-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.py
More file actions
121 lines (108 loc) · 4.05 KB
/
app.py
File metadata and controls
121 lines (108 loc) · 4.05 KB
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
110
111
112
113
114
115
116
117
118
119
120
121
from flask import Flask, render_template, redirect, url_for, request, flash
import os
import mysql.connector
template_dir = os.path.dirname(os.path.abspath(__file__))
template_dir = os.path.join(template_dir, 'templates')
app = Flask(__name__, template_folder=template_dir)
app.secret_key = 'your_secret_key' # Necesario para usar flash
# Configuración de la base de datos
db_config = {
'user': 'edumor',
'password': '********',
'host': 'edumor.mysql.pythonanywhere-services.com',
'database': 'edumor$default'
}
# Conexión a la base de datos
def get_db_connection():
return mysql.connector.connect(**db_config)
def repeat_string(s, n):
return s * n
@app.route('/')
@app.route('/home')
def home():
db = get_db_connection()
cursor = db.cursor()
# si no existe la tabla usuarios
cursor.execute("SHOW TABLES LIKE 'usuarios'")
result = cursor.fetchone()
if not result:
cursor.execute('''
CREATE TABLE usuarios (
id INT AUTO_INCREMENT PRIMARY KEY,
usuario VARCHAR(30),
nombre_apellido VARCHAR(150),
email VARCHAR(100),
empresa VARCHAR(100),
cargo VARCHAR(100),
password VARCHAR(30)
)
''')
cursor.execute('SELECT * FROM usuarios')
myresult = cursor.fetchall()
insertObject = []
column_names = [column[0] for column in cursor.description]
for record in myresult:
insertObject.append(dict(zip(column_names, record)))
cursor.close()
db.close()
d = "some value" # Define la variable d
return render_template('index.html', data=insertObject, repeat_string=repeat_string, d=d)
@app.route('/user', methods=['POST'])
def addUser():
username = request.form['user']
name = request.form['name']
email = request.form['email']
empresa = request.form['empresa']
cargo = request.form['cargo']
password = request.form['password']
if username and name and email and password:
db = get_db_connection()
cursor = db.cursor()
sql = "INSERT INTO usuarios (usuario, nombre_apellido, email, empresa, cargo, password) VALUES (%s, %s, %s, %s, %s, %s)"
data = (username, name, email, empresa, cargo, password)
cursor.execute(sql, data)
db.commit()
cursor.close()
db.close()
return redirect(url_for('home'))
else:
flash('Ingrese datos requeridos', 'error')
return redirect(url_for('home'))
@app.route('/delete/<int:id>', methods=['POST'])
def delete(id):
db = get_db_connection()
cursor = db.cursor()
sql = "DELETE FROM usuarios WHERE id = %s"
cursor.execute(sql, (id,))
db.commit()
cursor.close()
db.close()
return redirect(url_for('home'))
@app.route('/edit/<int:id>', methods=['POST'])
def edit(id):
username = request.form.get('username')
name = request.form.get('name')
email = request.form.get('email')
empresa = request.form.get('empresa')
cargo = request.form.get('cargo')
password = request.form.get('password')
if username and name and password:
try:
db = get_db_connection()
cursor = db.cursor()
sql = "UPDATE usuarios SET usuario = %s, nombre_apellido = %s, email = %s, empresa = %s, cargo = %s, password = %s WHERE id = %s"
data = (username, name, email, empresa, cargo, password, id)
cursor.execute(sql, data)
db.commit()
cursor.close()
db.close()
flash('Usuario actualizado correctamente', 'success')
except Exception as e:
db.rollback()
flash('Error al actualizar el usuario: {}'.format(e), 'error')
return redirect(url_for('home'))
else:
flash('Ingrese todos los datos requeridos', 'error')
return redirect(url_for('home'))
# if __name__ == '__main__':
# app.run(debug=True, host='0.0.0.0', port=5001)