Beispiel #1
0
def create_app():
    # Setup flask app
    flapp = Flask(__name__)
    flapp.config.from_envvar("SCHEDULR_SETTINGS")

    # Setup SQLAlchemy engine & Session class
    flapp.db_engine = create_engine(flapp.config["DB_STRING"])
    flapp.db_Session = scoped_session(sessionmaker(bind=flapp.db_engine))

    init_app(flapp)

    # Setup blueprints
    from app.modules import test_module, auth, setup, home, team

    flapp.register_blueprint(test_module.bp, url_prefix="/test")
    flapp.register_blueprint(setup.bp, url_prefix="/setup")
    flapp.register_blueprint(auth.bp, url_prefix="/auth")
    flapp.register_blueprint(team.bp, url_prefix="/team")
    flapp.register_blueprint(home.bp, url_prefix="/")

    # Setup api
    from app.modules.api import (
        me as api_me,
        team as api_team,
        user as api_user,
        project as api_project,
    )

    flapp.register_blueprint(api_me.bp, url_prefix="/api/me")
    flapp.register_blueprint(api_team.bp, url_prefix="/api/team")
    flapp.register_blueprint(api_user.bp, url_prefix="/api/user")
    flapp.register_blueprint(api_project.bp, url_prefix="/api/project")

    return flapp
Beispiel #2
0
def create_app(test_config=None):
    app = Flask(__name__, instance_relative_config=True, subdomain_matching=True)

    ###############
    ## Setup JWT ##
    ###############
    jwt = JWTManager(app)
    app.jwt = jwt

    ################
    ## Setup CORS ##
    ################
    CORS(app, supports_credentials=True)

    ##################
    ## Setup config ##
    ##################
    config_dict = get_config()
    app.config.from_mapping(
        SECRET_KEY=None if is_prod else 'dev',
        SERVER_NAME=None if is_prod else config_dict['SERVER_NAME'],
        SQLALCHEMY_DATABASE_URI=config_dict['SQLALCHEMY_DATABASE_URI'],
        JWT_SECRET_KEY=config_dict['JWT_SECRET_KEY'],
        JWT_ACCESS_TOKEN_EXPIRES=timedelta(days=1),
        JWT_TOKEN_LOCATION=['headers', 'cookies', 'query_string', 'json'],
        JWT_COOKIE_DOMAIN=config_dict['JWT_COOKIE_DOMAIN'],
    )
    if test_config is None:
        app.config.from_pyfile('config.py', silent=True)
    else:
        app.config.from_mapping(test_config)
    app.logger.info('Config loaded.')
    app.logger.info('\tinstance_path: {0}'.format(app.instance_path))

    ####################
    ## Setup database ##
    ####################
    db_engine = db.init_app(app)
    app.db_engine = db_engine
    app.logger.info('Database connected.')

    ###################
    ## Setup routing ##
    ###################
    main.init_app(app)
    app.register_blueprint(main.bp)
    auth.init_app(app)
    app.register_blueprint(auth.bp)
    app.register_blueprint(user.bp)
    app.register_blueprint(post.bp)

    return app
Beispiel #3
0
def create_app(package_name, package_path, debug=False):
    """Returns a :class:`Flask` application instance.

    :param package_name: application package name
    :param package_path: application package path
    :param debug: the debug flag
    """
    app = Flask(package_name, instance_relative_config=True)

    app.config.from_object('mushi.settings')
    app.config.from_envvar('MUSHI_SETTINGS', silent=True)

    if debug:
        app.debug = debug

    app.db_engine = create_engine(app.config['SQLALCHEMY_DATABASE_URI'])
    app.teardown_appcontext(remove_db_session)

    register_blueprints(app, package_name, package_path)
    return app
Beispiel #4
0
def create_app(package_name, package_path, debug=False):
    """Returns a :class:`Flask` application instance.
    :param package_name: application package name
    :param package_path: application package path
    :param debug: the debug flag
    """
    app = Flask(package_name, instance_relative_config=True)

    app.config.from_object('trexmo.settings')
    app.config.from_envvar('TREXMO_SETTINGS', silent=True)

    if debug:
        app.debug = debug

    app.db_engine = create_engine(app.config['SQLALCHEMY_DATABASE_URI'])
    app.teardown_appcontext(remove_db_session)

    app.cache = Cache(app, config=app.config)

    register_blueprints(app, package_name, package_path)
    return app
Beispiel #5
0
import os

from flask import Flask

from db.connection import db_engine

APP = Flask(__name__, static_folder='../statics')

if not os.environ.get('ONE_AUTH_ENV'):
    os.environ['ONE_AUTH_ENV'] = 'development'
os.environ[
    'ONE_AUTH_CONFIG_PATH'] = '../config/environments/%s.cfg' % os.environ[
        'ONE_AUTH_ENV']

APP.config.from_envvar('ONE_AUTH_CONFIG_PATH')

ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg'}
UPLOAD_FOLDER = '../statics/images'
APP.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

APP.debug = True
APP.db_engine = db_engine(
    os.environ.get('DB_URL') or APP.config.get('DB_URL'),
    os.environ.get('DB_USER_NAME') or APP.config.get('DB_USER_NAME'),
    os.environ.get('DB_PASSWORD') or APP.config.get('DB_PASSWORD'))
Beispiel #6
0
from datetime import datetime, timedelta
from flask import Flask, g, render_template
from pysumpmon import config, services
from serial import SerialException, SerialTimeoutException
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from threading import Timer
from twilio.exceptions import TwilioException

app = Flask('pysumpmon')
app.db_engine = create_engine(config.DB_CONNECTION_STRING)
app.db_session_factory = sessionmaker(bind=app.db_engine)

distance_sensor = services.DistanceSensorService(
            config.DISTANCE_SENSOR_PORT)


def log_distance():
    next_log_time = datetime.utcnow() + timedelta(seconds=30)

    try:
        db_session = app.db_session_factory()

        event_suppression = services.EventSuppressionService(db_session)
        notification_log = services.NotificationLogService(db_session)
        sump_water_distance = services.SumpWaterDistanceService(db_session)

        twillio_sms = services.TwilioSMSService(
            config.TWILLIO_ACCOUNT, config.TWILLIO_TOKEN,
            config.TWILLIO_NOTIFICATION_FROM, config.TWILLIO_NOTIFICATION_TO)