示例#1
0
文件: run.py 项目: opentechfn/medhavi
def create_app(config_filename):
    app = Flask(__name__)
    app.config.from_object(config_filename)

    from api.app import api_bp
    app.register_blueprint(api_bp, url_prefix='/api')

    from db.models import db
    db.init_app(app)

    return app
示例#2
0
def create_app():
    app = Flask(__name__, instance_relative_config=True)

    app.config.from_object(f"{__name__}.default_settings")
    app.config.from_envvar(f"{__name__.upper()}_SETTINGS")

    if "LOGGING_YAML" not in app.config and app.testing:
        logging.basicConfig(level=logging.DEBUG)
    else:
        with open(app.config.get("LOGGING_YAML"), "rt") as logging_yaml:
            logging.config.dictConfig(yaml.safe_load(logging_yaml.read()))

    db.init_app(app)
    migrate.init_app(app, db, render_as_batch=True)
    ma.init_app(app)

    app.register_blueprint(account_blueprint)
    app.register_blueprint(connect_blueprint)
    app.register_blueprint(oauth2_blueprint)
    app.register_blueprint(healthcheck_blueprint)
    app.register_blueprint(thingy_blueprint)

    app.register_error_handler(OAuth2ClientError, handle_oauth2_client_error)
    app.register_error_handler(SQLAlchemyError, handle_database_error)
    app.register_error_handler(400, handle_processing_error)
    app.register_error_handler(404, handle_not_found_error)
    app.register_error_handler(422, handle_processing_error)
    app.register_error_handler(429, handle_limit_error)

    api_limiter.init_app(app)
    auth_limiter.init_app(app)
    healthcheck_limiter.init_app(app)

    jwt.init_app(app)
    CORS(app)

    return app
示例#3
0
env = Env()
env.read_env()

# Flask sqlalchemy configurations
app = Flask(__name__, instance_relative_config=True)
CORS(app)
if env("ENV") == "dev":
    app.debug = True
    app.config['SQLALCHEMY_DATABASE_URI'] = env("SQLALCHEMY_LOCAL_DATABASE_URI")
else:
    app.debug = False
    app.config['SQLALCHEMY_DATABASE_URI'] = env("SQLALCHEMY_REMOTE_DATABASE_URI")
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db.app = app
db.init_app(app)

# Create the database tables and delete previous data
db.reflect()
db.drop_all()
db.create_all()
# Add initial data to the tables
seed_all()

# Connect routes to app
app.register_blueprint(routes_blueprint)

if env("ENV") == "dev":
    from flask_swagger_ui import get_swaggerui_blueprint
    SWAGGERUI_BLUEPRINT = get_swaggerui_blueprint(
        SWAGGER_URL,
示例#4
0
from flask import Flask, jsonify, abort, request, json
from sqlalchemy import desc, func
from sqlalchemy.orm.exc import NoResultFound
from db.models import db, Meta, Sensordata, meta_schema, metas_schema, sensordata_schema, sensordatas_schema

app = Flask(__name__)

app.config.from_pyfile('conf/psql-config.py')
db.init_app(app)

@app.before_first_request
def create_database():
     db.create_all()

@app.route('/api/v1/sensors/', methods = ['GET'])
def get_all_sensors():
    s = Meta.query.all()
    # serialize the queryset
    result = metas_schema.dump(s)
    return jsonify({'sensors': result.data})


@app.route('/api/v1/sensors/<int:id>', methods = ['GET'])
def get_sensor(id):
    try:
        # m = Meta.query.get(id)
        # in order to fetch NoResultFound exception it is neccessary to query the primary key as follows:
        m = Meta.query.filter_by(sid=id).one()
        meta_result = meta_schema.dump(m)
        return jsonify({'sensors': meta_result.data})
    except NoResultFound:
def create_app():
    # app = Flask(__name__)
    db.create_all()
    db.init_app(app)
    return app