Skip to content

Commit 429f9a3

Browse files
author
Jose Luis Chiquete
committed
220126a
1 parent 60fb31e commit 429f9a3

File tree

4 files changed

+31
-9
lines changed

4 files changed

+31
-9
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ coverage.xml
6060
local_settings.py
6161
db.sqlite3
6262
db.sqlite3-journal
63+
db.alumnos.sql
6364

6465
# Flask stuff:
6566
instance/

apiflaskdemo/app.py

+26-6
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,27 @@
55
from sqlalchemy import engine, inspect
66

77
def create_app():
8+
'''Función principal de la aplicación'''
9+
# Crear el objeto app
810
app = APIFlask(__name__)
11+
12+
# Obtener la configuración de la aplicación a partir de settings.py
913
app.config.from_pyfile("settings.py")
10-
db.init_app(app)
14+
15+
# Se incializa la conexión entre SQLALchemy y la base de datos
16+
db.init_app(app)
17+
1118
@app.before_first_request
1219
def crea_bases():
20+
'''Función encargada de verificar que exista una base de datos con
21+
las tablas de alumnos y de usuarios pobladas correctamente.
22+
En caso de no existir, es creada'''
23+
24+
# Verifica que exista la tabla alumno en la base de datos
1325
inspector = inspect(db.engine)
1426
if not inspector.has_table('alumno'):
15-
db.create_all()
1627
# Crea y llena la base de alumno.
28+
db.create_all()
1729
with open(app.config['PATH'] + "/../data/alumnos.txt", "rt") as f:
1830
alumnos = eval(f.read())
1931
for alumno in alumnos:
@@ -22,15 +34,23 @@ def crea_bases():
2234
else:
2335
db.session.add(Alumno(**alumno))
2436
db.session.commit()
37+
38+
# Verifica que exista el usuario admin y lo crea si no es así
2539
if not User.query.filter_by(username="admin"):
26-
user = User(username='admin', email='example@example.com',password='admin', active=True)
40+
user = User(username='admin',
41+
email='example@example.com',
42+
password='admin',
43+
active=True)
2744
db.session.add(user)
28-
db.session.commit()
45+
db.session.commit()
46+
47+
# Registra los blueprints con los endpoints
2948
app.register_blueprint(abc_alumnos, url_prefix='/api')
3049
app.register_blueprint(auth_bp, url_prefix='/auth')
50+
51+
#Regresa la aplicación
3152
return app
3253

33-
app = create_app()
34-
3554
if __name__ == '__main__':
55+
app = create_app()
3656
app.run(host='0.0.0.0', port=3000, debug=True)

apiflaskdemo/db.alumnos.sql

-20 KB
Binary file not shown.

apiflaskdemo/test_database.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,12 @@ def test_existe_admin(base_conectada):
2222

2323
def test_existe_tabla_alumnos(base_conectada):
2424
print('Probando que existan alumnos...')
25-
assert len(Alumno.query.all())
26-
27-
25+
assert Alumno.query.all()
26+
27+
2828
def test_datos_correctos_alumnos(base_conectada):
2929
print('Probando que los datos de los alumnos sean correctos..')
30+
3031
def object_as_dict(obj):
3132
return {c.key: getattr(obj, c.key)
3233
for c in inspect(obj).mapper.column_attrs}

0 commit comments

Comments
 (0)