Ejemplo n.º 1
0
def create_app():
    '''Función principal de la aplicación'''
    # Crear el objeto app
    app = APIFlask(__name__)

    # Obtener la configuración de la aplicación a partir de settings.py
    app.config.from_pyfile("settings.py")

    # Se incializa la conexión entre SQLALchemy y la base de datos
    db.init_app(app)

    @app.before_first_request
    def crea_bases():
        '''Función encargada de verificar que exista una base de datos  con
           las tablas de alumnos y de usuarios pobladas correctamente. 
            En caso de no existir, es creada'''

        # Verifica que exista la tabla alumno en la base de datos
        inspector = inspect(db.engine)
        if not inspector.has_table('alumno'):
            # Crea y llena la base de alumno.
            db.create_all()
            with open(app.config['PATH'] + "/../data/alumnos.txt", "rt") as f:
                alumnos = eval(f.read())
                for alumno in alumnos:
                    if Alumno.query.filter_by(cuenta=alumno["cuenta"]).first():
                        continue
                    else:
                        db.session.add(Alumno(**alumno))
                db.session.commit()

            # Verifica que exista el usuario admin y lo crea si no es así
            if not User.query.filter_by(username="******").first():
                user = User(username='******',
                            email='*****@*****.**',
                            password='******',
                            active=True)
                db.session.add(user)
                db.session.commit()

    # Registra los blueprints con los endpoints
    app.register_blueprint(abc_alumnos, url_prefix='/api')
    app.register_blueprint(auth_bp, url_prefix='/auth')

    #Regresa la aplicación
    return app
Ejemplo n.º 2
0
"""
Some description for my tag from module doc.
"""
from apiflask import APIFlask, APIBlueprint

app = APIFlask(__name__)
bp = APIBlueprint('foo', __name__)


@bp.get('/')
def hello():
    return {'message': 'Hello World!'}


app.register_blueprint(bp)