5
5
from sqlalchemy import engine , inspect
6
6
7
7
def create_app ():
8
+ '''Función principal de la aplicación'''
9
+ # Crear el objeto app
8
10
app = APIFlask (__name__ )
11
+
12
+ # Obtener la configuración de la aplicación a partir de settings.py
9
13
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
+
11
18
@app .before_first_request
12
19
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
13
25
inspector = inspect (db .engine )
14
26
if not inspector .has_table ('alumno' ):
15
- db .create_all ()
16
27
# Crea y llena la base de alumno.
28
+ db .create_all ()
17
29
with open (app .config ['PATH' ] + "/../data/alumnos.txt" , "rt" ) as f :
18
30
alumnos = eval (f .read ())
19
31
for alumno in alumnos :
@@ -22,15 +34,23 @@ def crea_bases():
22
34
else :
23
35
db .session .add (Alumno (** alumno ))
24
36
db .session .commit ()
37
+
38
+ # Verifica que exista el usuario admin y lo crea si no es así
25
39
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 )
27
44
db .session .add (user )
28
- db .session .commit ()
45
+ db .session .commit ()
46
+
47
+ # Registra los blueprints con los endpoints
29
48
app .register_blueprint (abc_alumnos , url_prefix = '/api' )
30
49
app .register_blueprint (auth_bp , url_prefix = '/auth' )
50
+
51
+ #Regresa la aplicación
31
52
return app
32
53
33
- app = create_app ()
34
-
35
54
if __name__ == '__main__' :
55
+ app = create_app ()
36
56
app .run (host = '0.0.0.0' , port = 3000 , debug = True )
0 commit comments