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
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
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,
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