-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.py
More file actions
156 lines (125 loc) · 4.4 KB
/
app.py
File metadata and controls
156 lines (125 loc) · 4.4 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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
from flask import Flask, jsonify, request, render_template
import psycopg2
app = Flask(__name__)
from users import users
try:
connection = psycopg2.connect(
host = 'localhost',
user = 'postgres',
password = '123456',
database = 'Prueba',
port = '5432'
)
print('succesfull conexion')
except Exception as ex:
print(ex)
connection.autocommit = True
@app.route('/estado')
def getEstado():
return jsonify({'nameSystem': 'api-users', 'version': '0.0.1', 'developer':'Marco Antonio Canedo Rejas',
'email': '[email protected]'})
#listar un usuario en especifico por GET de un conjunto JSON
@app.route('/users/<string:user_ci>')
def getuser(user_ci):
usersFound = [user for user in users if user['ci'] == user_ci]
if(len(usersFound) > 0):
return jsonify({'user': usersFound[0]})
return jsonify({'message': 'user no found'})
#crear usuarios por POST
@app.route('/users', methods=['POST'])
def addusers():
new_user = {
'name': request.form['name'],
'edad': request.form['edad'],
'primer_apel': request.form['primer_apel'],
'seg_apel': request.form['seg_apel'],
'ci': request.form['ci'],
'fec_nac': request.form['fec_nac']
}
con = connection.cursor()
query = "INSERT INTO users(ci,nombre,primer_apel,seg_apel,fec_nac,edad) values('"+new_user['ci']+"','"+new_user['name']+"','"+new_user['primer_apel']+"','"+new_user['seg_apel']+"','2000-05-12',"+new_user['edad']+")"
try:
con.execute(query)
print("El registro se completo")
except Exception as ex:
print(ex)
con.close()
return jsonify({"message": "Registro realizado"})
#listar datos de usuario por GET
@app.route('/users')
def listDataUsers():
con = connection.cursor()
query = "SELECT * FROM users;"
try:
con.execute(query)
except Exception as ex:
print(ex)
data = con.fetchall()
con.close()
return jsonify(data)
#actualizar datos de usuario por PUT
@app.route('/users/<string:id_user>', methods=['PUT'])#, methods=['PUT'])
def updateDataUser(id_user):
con = connection.cursor()
#muestra el registro antes de actualizar
query = "SELECT * FROM users where id_user = " + id_user+";"
try:
con.execute(query)
except Exception as ex:
print(ex)
data = con.fetchall()
#ejecuta la actualizacion
query = "UPDATE users set ci = '0000000', nombre = 'nombredeprueba', primer_apel = 'primerapellido', edad = 100 where id_user = " + id_user+";"
try:
con.execute(query)
except Exception as ex:
print(ex)
#muestra registro despues de la actualizacion
query = "SELECT * FROM users where id_user = " + id_user+";"
try:
con.execute(query)
except Exception as ex:
print(ex)
data2 = con.fetchall()
con.close()
return jsonify({"Registro antes de la actualizacion": data}, {"Resgistro despues de la actualizacion": data2})
#eliminar un usuario por DELETE
@app.route('/users/<string:id_user>', methods=['DELETE'])
def deleteDataUser(id_user):
con = connection.cursor()
#muestra el registro antes de actualizar
query = "SELECT * FROM users;"
try:
con.execute(query)
except Exception as ex:
print(ex)
data = con.fetchall()
#ejecuta la actualizacion
query = "DELETE FROM users where id_user = " + id_user+";"
try:
con.execute(query)
except Exception as ex:
print(ex)
#muestra registro despues de la actualizacion
query = "SELECT * FROM users;"
try:
con.execute(query)
except Exception as ex:
print(ex)
data2 = con.fetchall()
con.close()
return jsonify({"Registros antes de la eliminacion": data}, {"Registros despues de la eliminacion": data2})
#promedio por GET
@app.route('/users/promedio-edad')
def calcAVG():
con = connection.cursor()
query = "SELECT AVG(EXTRACT(YEAR FROM AGE(NOW(), fec_nac))) AS promedio_edades FROM users;"
try:
con.execute(query)
except Exception as ex:
print(ex)
data = con.fetchall()
return jsonify({'promedioEdad': data})
#http://localhost:4000
if __name__ == '__main__':
app.run(debug=True, port=4000)