コード例 #1
0
ファイル: ext.py プロジェクト: huochecar/drive3
def init_ext(app):
    app.config['SECRET_KEY'] = '110'
    Session(app=app)
    app.register_blueprint(blueprint=blue)
    db.init_app(app=app)
    migrate = Migrate()
    migrate.init_app(app=app,db=db)
コード例 #2
0
def init_ext(app):
    # session
    app.config['SECRET_KEY'] = '119'
    app.config['SESSION_TYPE'] = 'redis'
    app.config['SESSION_KEY_PREFIX'] = 'python1905'
    Session(app=app)

    # sqlalchemy
    db.init_app(app=app)

    # migrate
    migrate = Migrate()
    migrate.init_app(app=app, db=db)

    # flask-bootstrap
    Bootstrap(app=app)

    # flask-debugtoolbar
    # app.debug = True
    # debugtoolbar = DebugToolbarExtension()
    # debugtoolbar.init_app(app=app)

    # flask-cache
    # 如果cache在方法内 那么导包是不可以的  需要将这个遍历防到方法外
    # cache = Cache(config={'CACHE_TYPE':'redis'})
    # 如果报错 ImportError: No module named 'flask.ext'
    # 解决方法:(1)打开site-packages
    #          (2) flask-cache下的jinja2ext.py
    #          (3) 修改from flask.ext.cache import make_template_fragment_key为
    #      from flask_cache import make_template_fragment_key
    cache.init_app(app=app)
コード例 #3
0
ファイル: run.py プロジェクト: nemcduffie/insurance_api
def create_app(config_class='development'):
    ''' Method to initalize app and it's api routes.
    '''
    app = Flask(__name__, root_path='insurance_api/')

    app.config.from_object(config_settings[config_class])

    jwt = JWTManager(app)
    api = Api(app)

    from insurance_api.resources import (Registration, Login, Questionaire,
                                         Secret)
    from insurance_api.models import db

    db.init_app(app)
    migrate = Migrate()
    migrate.init_app(app, db)

    api.add_resource(Registration, '/registration')
    api.add_resource(Login, '/login')
    api.add_resource(Questionaire, '/questionaire')
    api.add_resource(Secret, '/secret')

    @app.errorhandler(ValidationError)
    def handle_bad_request(e):
        return e.messages, 422

    return app
コード例 #4
0
ファイル: database.py プロジェクト: jo-315/search_demo
def init_db(app):
    with app.app_context():
        db.init_app(app)
        db.create_all()

        migrate = Migrate(app, db)
        migrate.init_app(app, db)
コード例 #5
0
def create_app():
    # initializing the app
    print("\n[INITIALIZING THE APP...]")
    from src.main import App
    app = App(instance_path=add_sys_paths()[0])

    print("\n[INITIALIZING THE DATABASE...]")
    db.init_app(app=app)

    # migrating Models to DB
    from flask_migrate import Migrate
    print("\n\n[MIGRATING THE DATABASE...]")
    migrate = Migrate()
    with app.app_context():
        # allow dropping column for sqlite
        if db.engine.url.drivername == 'sqlite':
            migrate.init_app(app, db, render_as_batch=True)
        else:
            migrate.init_app(app, db)

    # importing all model (tables) is needed for flask-migrate to detect changes
    from main.modules.user import user_model
    from main.modules.project import project_model

    print('\n\n[NEW APP RETURNED...]')
    return app
コード例 #6
0
ファイル: __init__.py プロジェクト: tranvietphuoc/flask-blog
def create_app(config_class=Config):
    app = Flask(__name__)
    app.config.from_object(Config)

    # init all extensions with app
    db.init_app(app)
    crypt.init_app(app)
    login_manger.init_app(app)
    mail.init_app(app)
    # Admin panel
    admin.init_app(app)

    # init migrating database
    # use flask cli to run: flask db init or pipenv run python manage.py db init
    # to create migrations folder
    migrate = Migrate()
    migrate.init_app(app, db)

    # import all blueprints here
    from blog.users.routes import users
    from blog.posts.routes import posts
    from blog.main.routes import main
    from blog.errors.handlers import errors
    # import admin blueprint
    from blog.admin import admin_bp

    # then run these blueprints
    app.register_blueprint(users)
    app.register_blueprint(posts)
    app.register_blueprint(main)
    app.register_blueprint(errors)
    # add admin blueprint
    app.register_blueprint(admin_bp)

    return app
コード例 #7
0
def create_app(test_config=None):
    # todo: setup app.logger
    logger.info(f'ENV: {ENV}')
    app = Flask(__name__, instance_relative_config=False)
    CORS(app, resources=r'/api/*')
    logging.getLogger('flask_cors').level = logging.DEBUG

    conf = test_config if test_config else Config
    app.config.from_object(conf)
    db.init_app(app)
    mirgate = Migrate()
    mirgate.init_app(app, db)
    bcrypt.init_app(app)
    jwt.init_app(app)
    app.register_blueprint(auth_blueprint, url_prefix='/api')
    app.register_blueprint(instruction_document_blueprint,
                           url_prefix='/api/instruction-documents')
    app.register_blueprint(files_blueprint, url_prefix='/api/files')
    app.register_error_handler(
        Exception, error_response
    )  # todo: err hanlding in error_response -> blueprint register default error_response
    app.before_request(check_json_content_type)

    with app.app_context():
        create_default_groups()

    return app
コード例 #8
0
ファイル: __init__.py プロジェクト: 21jun/minitter
def init_app(app):
    print("INIT: DATABASE")
    db.init_app(app)
    # add new models here
    from . import users, posts, tweet
    migrate = Migrate()
    migrate.init_app(app, db)
コード例 #9
0
def create_test_app():
    migrate = Migrate()
    db = SQLAlchemy()
    login = LoginManager()
    login.login_view = 'auth.login'
    login.login_message = 'Please log in to access this page.'
    bootstrap = Bootstrap()
    babel = Babel()

    app = Flask(__name__)
    app.config.from_object(Config)
    migrate.init_app(app, db)
    login.init_app(app)
    bootstrap.init_app(app)
    babel.init_app(app)

    from {{cookiecutter.project_slug}}.errors import bp as errors_bp  # noqa: E402

    app.register_blueprint(errors_bp)

    from {{cookiecutter.project_slug}}.auth import bp as auth_bp  # noqa: E402

    app.register_blueprint(auth_bp, url_prefix='/auth')

    from {{cookiecutter.project_slug}}.main import bp as main_bp  # noqa: E402

    app.register_blueprint(main_bp)

    return app
コード例 #10
0
def create_app(config_class=Config):
    app = Flask(__name__)
    app.config.from_object(Config)

    db.init_app(app)
    bcrypt.init_app(app)
    migrate = Migrate(app, db)
    migrate.init_app(app)
    login_manager.init_app(app)
    csrf_token.init_app(app)

    from acsystem.user.routes import users
    from acsystem.company.routes import company
    from acsystem.main.routes import main
    from acsystem.customer.routes import customers
    from acsystem.supplier.routes import suppliers
    from acsystem.groupledger.routes import groupledgers
    from acsystem.product.routes import products
    from acsystem.transactions.routes import transactions
    from acsystem.tax.routes import taxes
    app.register_blueprint(users)
    app.register_blueprint(company)
    app.register_blueprint(main)
    app.register_blueprint(customers)
    app.register_blueprint(suppliers)
    app.register_blueprint(groupledgers)
    app.register_blueprint(products)
    app.register_blueprint(transactions)
    app.register_blueprint(taxes)

    return app
コード例 #11
0
def create_app(config=None):
    """The kickstarter which creates a Flask application and sets up the
    rest of the framework for Sowingo's Microservices Template's application.

    This method initializes all the core extensions, services and modules
    required to run the Sowingo's Microservices Template Flask Application.

    :param:`config` - An optional argument to be used when setting up the
        current flask app's config. See `app.config`
    :returns:`app` - Returns the current initialized flask application.
    """
    logger.info('Init :: Creating Flask Application')
    app = flask.Flask(__name__)
    migrate = Migrate()
    logger.info('Init :: Loading Application Settings')
    app.config.from_object('api.settings')
    logger.info('Init :: Loading Core Extensions')
    for extension in EXTENSIONS:
        extension.init_app(app)
        migrate.init_app(app, extension)

    logger.info('Init :: Initializing Service Registry')
    app.services = core.services.ServiceRegistry(app)

    logger.info('Init :: Registering Modules')
    for module_name in MODULES:
        module = importlib.import_module(module_name)
        initialize_module(app, module)

    logger.debug('Init :: Welcome to Sowingo\'s Microservices Template Application' \
                 + ' [app_version: {}]'.format(version))
    return app
コード例 #12
0
ファイル: ext.py プロジェクト: xwsftst/Lucky
def init_ext(app):
    db.init_app(app=app)
    migrate = Migrate(app, db)
    migrate.init_app(app=app, db=db)
    login_manager.init_app(app=app)
    login_manager.login_view = 'login.sign_in'
    mail.init_app(app)
コード例 #13
0
ファイル: app.py プロジェクト: Liqolabs/liqodemy
def create_app():
    app = Flask(__name__)
    app.config.from_mapping(config)

    from core.cli import CLI
    from core.database import db

    from apps.user import UserModule
    from apps.post import PostModule
    from apps.comment import CommentModule
    from apps.category import CategoryModule
    from apps.file import FileModule

    cli = CLI()
    cors = CORS()
    migrate = Migrate()

    user = UserModule()
    post = PostModule()
    comment = CommentModule()
    category = CategoryModule()
    file = FileModule()

    cors.init_app(app)
    cli.init_app(app)
    db.init_app(app)
    migrate.init_app(app, db)

    user.init_app(app)
    post.init_app(app)
    comment.init_app(app)
    category.init_app(app)
    file.init_app(app)

    return app
コード例 #14
0
def db(app):
    """Create database for the tests."""
    _db.app = app

    # If the backup db exists, use it
    # if not, create it from scratch and save it for other tests
    if BACKUP_DB_PATH.is_file():
        copy(BACKUP_DB_PATH, TEST_DB_PATH)
    else:
        with app.app_context():
            migrate = Migrate()
            migrate.init_app(app, _db)
            upgrade()

        test_data_records(_db, limit=TEST_RECORDS)
        test_data_medals(_db)

        DonorsOverview.refresh_overview()

        copy(TEST_DB_PATH, BACKUP_DB_PATH)

    yield _db

    # Explicitly close DB connection
    _db.session.close()
コード例 #15
0
def create_app():
    """Construct the core application."""
    app = Flask(__name__, template_folder="templates")
    app.config.from_pyfile("config.py")
    db.init_app(app)
    migrate = Migrate(app, db)

    # Add and init LoginManager instance
    login_manager = LoginManager()
    login_manager.init_app(app)
    login_manager.login_view = "login"

    # Add Blueprints
    app.register_blueprint(user_blueprint)
    app.register_blueprint(stonk_blueprint)

    with app.app_context():

        from . import routes

        @login_manager.user_loader
        def load_user(user_id):
            return User.query.get(user_id)

        @login_manager.unauthorized_handler
        def unauthorized_callback():
            return redirect(url_for('user.login'))

        # render_as_batch for renaming columns in SQLite
        if db.engine.url.drivername == "sqlite":
            migrate.init_app(app, db, render_as_batch=True)
        else:
            migrate.init_app(app, db)

        return app
コード例 #16
0
ファイル: models.py プロジェクト: ravinderreddy-p/splitwise
def setup_db(app, database_path=database_path):
    app.config["SQLALCHEMY_DATABASE_URI"] = database_path
    app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
    db.app = app
    migrate = Migrate()
    db.init_app(app)
    migrate.init_app(app, db)
コード例 #17
0
def create_app():

    app = Flask(__name__)

    load_dotenv()
    app.config['SQLALCHEMY_DATABASE_URI'] = os.getenv("DATABASE")
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    app.config['DEBUG'] = True

    db.init_app(app)
    ma.init_app(app)

    migrate = Migrate(app, db)
    manager = Manager(app)

    from .routes.user import user_bp
    app.register_blueprint(user_bp)

    from .routes.product import product_bp
    app.register_blueprint(product_bp)

    from .routes.category import category_bp
    app.register_blueprint(category_bp)

    swagger_bp = get_swaggerui_blueprint(swagger_url,
                                         api_url,
                                         config={'app_name': "Flask-StoreAPI"})

    app.register_blueprint(swagger_bp, url_prefix=swagger_url)

    migrate.init_app(app, db)
    manager.add_command('db', MigrateCommand)

    return manager
コード例 #18
0
def create_app(settings_module):
    app = Flask(__name__, instance_relative_config=True)
    # Load the config file specified by the APP environment variable
    app.config.from_object(settings_module)
    # Load the configuration from the instance folder
    if app.config.get('TESTING', False):
        app.config.from_pyfile('config-testing.py', silent=True)
    else:
        app.config.from_pyfile('config.py', silent=True)

    db.init_app(app)

    # configurar flask migrate
    migrate = Migrate()
    migrate.init_app(app, db)

    login_manager.init_app(app)
    login_manager.login_view = "auth.login"

    db.init_app(app)

    # Registro de los Blueprints
    from .auth import auth_bp
    app.register_blueprint(auth_bp)

    from .admin import admin_bp
    app.register_blueprint(admin_bp)

    from .public import public_bp
    app.register_blueprint(public_bp)

    return app
コード例 #19
0
def create_app(script_info=None):
    app = Flask(__name__, instance_relative_config=True)

    # carrega a configuracao baseado no variavel de ambiente FLASK_CONFIG
    # ou utiliza a configuracao para um ambiente de desenvolvimento
    config_name = os.getenv('FLASK_CONFIG', 'development')

    # configuracoes padroes baseadas no ambiente
    app.config.from_object(CONFIG_NAME_MAPPER[config_name])

    with app.app_context():
        # registra database
        from app.models import db
        db.init_app(app)

        # inicia extensao de migrate
        migrate = Migrate()
        migrate.init_app(app=app, db=db)

        # registra modulo de autenticacao
        from app.auth import jwt
        jwt.init_app(app)

        # registra modulos de resources
        from app import auth
        auth.init_app(app)
        from app import api
        api.init_app(app)

    return app
コード例 #20
0
def create_app():
    """Construct the core application."""
    app = Flask(__name__,
                instance_relative_config=True,
                static_folder='./uploads')
    CORS(app)
    app.config.from_object('config.Config')
    app.config['JWT_SECRET_KEY'] = 'jwt-secret-string'
    jwt = JWTManager(app)
    db.init_app(app)
    migrate = Migrate(app, db)
    ma.init_app(app)
    logging.getLogger('flask_cors').level = logging.DEBUG

    with app.app_context():
        from application.users.routes import user_profile
        from application.items.routes import item_profile
        from application.reviews.routes import review_profile
        from application.addresses.routes import address_profile
        from application.accounts.routes import account_profile

        app.register_blueprint(user_profile)
        app.register_blueprint(item_profile)
        app.register_blueprint(review_profile)
        app.register_blueprint(address_profile)
        app.register_blueprint(account_profile)

        migrate.init_app(app, db)
        db.create_all()
        return app
コード例 #21
0
def create_app(extra_config_settings={}):
    # Instantiate Flask extensions
    db = SQLAlchemy()
    auth = HTTPBasicAuth()
    # mail = Mail()
    migrate = Migrate()
    """Create a Flask application.
    """
    # Instantiate Flask
    app = Flask(__name__)

    # Load common settings
    app.config.from_object('app.settings')
    # Load environment specific settings
    app.config.from_object('app.local_settings')
    # Load extra settings from extra_config_settings param
    app.config.update(extra_config_settings)

    # Setup Flask-SQLAlchemy
    db.init_app(app)

    # Setup Flask-Migrate
    migrate.init_app(app, db)

    # Setup CORS
    CORS(app)

    # Register blueprints
    from .views import register_blueprints
    register_blueprints(app)

    return app
コード例 #22
0
    def configure(self):
        # Create the app
        app = Flask(__name__)

        # Disable CORS
        CORS(app)

        # Setup the TMDB API client
        tmdb = Tmdb(self.tmdb_key, db)

        # Set up the database
        database = Database(db)
        app.config['SQLALCHEMY_DATABASE_URI'] = self.database_uri
        app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True

        # Get the executable schema
        schema = get_schema(tmdb, database)

        # Setup migrations
        migrate = Migrate(app, db)
        db.init_app(app)
        migrate.init_app(app, db)

        # Run migrations
        with app.app_context():
            upgrade(directory=os.path.join(os.path.dirname(__file__), "..",
                                           "migrations"))

        # Register the routes
        register_routes(app, schema, self.backend_secret)

        # Expose the Flask app
        self.app = app
コード例 #23
0
ファイル: app.py プロジェクト: lemadev/flask-rest-tdd-api
def create_app(config_name):
    app = Flask(__name__, instance_relative_config=True)
    app.config.from_object(app_config[config_name])
    db.init_app(app)
    migrate = Migrate()
    migrate.init_app(app, db)
    app.config['SECRET_KEY'] = 'key_secret'
    return app
コード例 #24
0
def create_app(config_class=Config):
    app.config.from_object(config_class)
    from application import routes, forms
    from application.models import db
    db.init_app(app)
    migrate = Migrate()
    migrate.init_app(app, db)
    return app
コード例 #25
0
def register_extensions(app):
    db.init_app(app)
    app.app_context().push()
    migrate = Migrate()
    if db.engine.url.drivername == 'sqlite':
        migrate.init_app(app, db, render_as_batch=True)
    else:
        migrate.init_app(app, db)
コード例 #26
0
ファイル: db.py プロジェクト: ic-drp02/drp-server
class Database(SQLAlchemy):
    def __init__(self):
        super().__init__()
        self.migrate = Migrate()

    def init_app(self, app):
        super().init_app(app)
        self.migrate.init_app(app, self)
コード例 #27
0
def create_app(config):
    app = Flask(__name__)
    app.config.from_object(config)
    migrate = Migrate(app=app, db=db)
    migrate.init_app(app)
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    restful_api(app)
    return app
コード例 #28
0
def create_app():
    app = Flask(__name__)
    app.config.from_object('config.Config')
    app.register_blueprint(routes.routes)
    db.init_app(app)
    migrate = Migrate(app, db, directory=Config.MIGRATIONS_DIRECTORY)
    migrate.init_app(app, db)
    return app
コード例 #29
0
def create_app(config_filename):
    app = Flask(__name__)
    app.config.from_object(config_filename)
    # Database
    db.init_app(app)
    migrate = Migrate()
    migrate.init_app(app, db)
    register_resources(app, '/api')
    return app
コード例 #30
0
ファイル: __init__.py プロジェクト: chinese-bbb/web-backend
def init_app(app, db):
    migrate = Migrate(app, db)
    with app.app_context():
        if db.engine.url.drivername == 'sqlite':
            migrate.init_app(app, db, render_as_batch=True)
        else:
            migrate.init_app(app, db)

    return migrate
コード例 #31
0
ファイル: app.py プロジェクト: mozillazg/bookmarks
def register_exts(app):
    db.init_app(app)
    db.app = app
    cache.init_app(app)
    migrate = Migrate()
    migrate.init_app(app, db)
    register_login(app)
    if not app.config.get('TESTING'):
        register_admins(app)
コード例 #32
0
def register_extensions(app):
    """
    Import and register flask extensions and initialize with app object
    """

    from app.assets import env
    env.init_app(app)

    from app.extensions import db
    db.init_app(app)
    # XXX avoids "RuntimeError: application not registered on db instance and
    # no application bound to current context" when accessing db outside of app
    # context
    db.app = app

    from flask_migrate import Migrate
    from sqlalchemy.exc import ArgumentError
    migrate = Migrate()
    # XXX SQLite chokes on constraint changes without this
    with app.app_context():
        try:
            render_as_batch = db.engine.url.drivername == 'sqlite'

        # XXX this happens during a test
        except ArgumentError:
            render_as_batch = True

        migrate.init_app(app, db, render_as_batch=bool(render_as_batch))

    from flask_humanize import Humanize
    Humanize(app)

    from flask_security import Security
    from app.extensions import user_datastore
    from app.main.models import AnonymousUser, Role, User
    user_datastore.role_model = Role
    user_datastore.user_model = User
    Security(app, user_datastore, anonymous_user=AnonymousUser)

    from app.extensions import notify
    notify.init_app(app)

    from app.oidc_client import OIDCClient
    OIDCClient(app)

    from app.extensions import pay
    pay.init_app(app)
コード例 #33
0
def register_extensions(app):
    """
    Import and register flask extensions and initialize with app object
    """

    from app.assets import env
    env.init_app(app)

    from app.extensions import db
    db.init_app(app)
    # XXX avoids "RuntimeError: application not registered on db instance and
    # no application bound to current context" when accessing db outside of app
    # context
    db.app = app

    from flask_migrate import Migrate
    from sqlalchemy.exc import ArgumentError
    migrate = Migrate()
    # XXX SQLite chokes on constraint changes without this
    with app.app_context():
        try:
            render_as_batch = db.engine.url.drivername == 'sqlite'

        # XXX this happens during a test
        except ArgumentError:
            render_as_batch = True

        migrate.init_app(app, db, render_as_batch=bool(render_as_batch))

    from flaskext.markdown import Markdown
    Markdown(app, extensions=app.config.get('MARKDOWN_EXTENSIONS', []))

    from flask_humanize import Humanize
    Humanize(app)

    from app.extensions import oidc
    oidc.init_app(app)

    from flask_security import Security
    from app.extensions import user_datastore
    from app.blueprints.base.models import Role, User
    user_datastore.role_model = Role
    user_datastore.user_model = User
    Security(app, user_datastore)
コード例 #34
0
ファイル: app.py プロジェクト: yuanshanshan/BBC
 def add_sqlalchemy(self):
     db.init_app(self)
     migrate = Migrate()
     migrate.init_app(self, db)
コード例 #35
0
ファイル: manager.py プロジェクト: dodotdo/youngs-server
from coverage import coverage
from flask import current_app
from youngs_server.helpers.image_helper import save_json_image, generate_image_url
from youngs_server import app
from flask_migrate import Migrate, MigrateCommand
from flask_script import Shell, Manager, Server
from youngs_server.models.host_models import Member, Question, Review, Lecture
from youngs_server.youngs_app import db, youngs_redis
from youngs_server.common.time_util import today_obj, now_datetime

from youngs_server.youngs_app import log

app.config['RUN'] = False
manager = Manager(app)
migrate = Migrate()
migrate.init_app(app, db, directory="./migrations")
base_dir = os.path.dirname(os.getcwd())
config_dir = os.path.join(base_dir, 'app_server/config')

server = Server(host="0.0.0.0", port=8082)
manager.add_command('db', MigrateCommand)

@manager.command
def initall():
    createdb()
    initmember()
    initlecture()
    initquestion()
    initreview()
    initredis()
    return 'success'
コード例 #36
0
ファイル: flaskr_manager.py プロジェクト: jinxiaoyuan/flaskr
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager

from app import app, db

migrate = Migrate()
DATABASE_URI = getattr(app.config, 'SQLALCHEMY_DATABASE_URI', '')
is_sqlite = DATABASE_URI.startswith('sqlite:')
migrate.init_app(app, db, render_as_batch=is_sqlite)

manager = Manager(app)
manager.add_command('db', MigrateCommand)


if __name__ == '__main__':
    manager.run()
コード例 #37
0
ファイル: __init__.py プロジェクト: rlugojr/timesketch
def create_app(config=None):
    """Create the Flask app instance that is used throughout the application.

    Args:
        config: Path to configuration file as a string or an object with config
        directives.

    Returns:
        Application object (instance of flask.Flask).
    """
    # Setup the Flask app and load the config.
    app = Flask(
        __name__, template_folder=u'ui/templates', static_folder=u'ui/static')

    if not config:
        config = u'/etc/timesketch.conf'

    if isinstance(config, unicode):
        os.environ[u'TIMESKETCH_SETTINGS'] = config
        try:
            app.config.from_envvar(u'TIMESKETCH_SETTINGS')
        except IOError:
            sys.stderr.write(
                u'Config file {0} does not exist.\n'.format(config))
            sys.exit()
    else:
        app.config.from_object(config)

    # Make sure that SECRET_KEY is configured.
    if not app.config[u'SECRET_KEY']:
        sys.stderr.write(u'ERROR: Secret key not present. '
                         u'Please update your configuration.\n'
                         u'To generate a key you can use openssl:\n\n'
                         u'$ openssl rand -base64 32\n\n')
        sys.exit()

    # Setup the database.
    configure_engine(app.config[u'SQLALCHEMY_DATABASE_URI'])
    db = init_db()

    # Alembic migration support:
    # http://alembic.zzzcomputing.com/en/latest/
    migrate = Migrate()
    migrate.init_app(app, db)

    # Register blueprints. Blueprints are a way to organize your Flask
    # Flask application. See this for more information:
    # http://flask.pocoo.org/docs/latest/blueprints/
    app.register_blueprint(user_views)
    app.register_blueprint(home_views)
    app.register_blueprint(sketch_views)
    app.register_blueprint(story_views)

    # Setup URL routes for the API.
    api_v1 = Api(app, prefix=u'/api/v1')
    api_v1.add_resource(SketchListResource, u'/sketches/')
    api_v1.add_resource(SketchResource, u'/sketches/<int:sketch_id>/')
    api_v1.add_resource(
        AggregationResource, u'/sketches/<int:sketch_id>/aggregation/')
    api_v1.add_resource(ExploreResource, u'/sketches/<int:sketch_id>/explore/')
    api_v1.add_resource(EventResource, u'/sketches/<int:sketch_id>/event/')
    api_v1.add_resource(
        EventAnnotationResource, u'/sketches/<int:sketch_id>/event/annotate/')
    api_v1.add_resource(ViewListResource, u'/sketches/<int:sketch_id>/views/')
    api_v1.add_resource(
        ViewResource, u'/sketches/<int:sketch_id>/views/<int:view_id>/')
    api_v1.add_resource(UploadFileResource, u'/upload/')
    api_v1.add_resource(TaskResource, u'/tasks/')
    api_v1.add_resource(
        StoryListResource, u'/sketches/<int:sketch_id>/stories/')
    api_v1.add_resource(
        StoryResource, u'/sketches/<int:sketch_id>/stories/<int:story_id>/')

    # Register error handlers
    # pylint: disable=unused-variable
    @app.errorhandler(ApiHTTPError)
    def handle_api_http_error(error):
        """Error handler for API HTTP errors.

        Returns:
            HTTP response object (instance of flask.wrappers.Response)
        """
        return error.build_response()

    # Setup the login manager.
    login_manager = LoginManager()
    login_manager.init_app(app)
    login_manager.login_view = u'user_views.login'

    # This is used by the flask_login extension.
    # pylint: disable=unused-variable
    @login_manager.user_loader
    def load_user(user_id):
        """Based on a user_id (database primary key for a user) this function
        loads a user from the database. It is used by the Flask-Login extension
        to setup up the session for the user.

        Args:
            user_id: Integer primary key for the user.

        Returns:
            A user object (Instance of timesketch.models.user.User).
        """
        return User.query.get(user_id)

    # Setup CSRF protection for the whole application
    CsrfProtect(app)

    return app
コード例 #38
0
ファイル: __init__.py プロジェクト: RockFeng0/app-autoAppWeb
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from pyrwbs.config import Config

app = Flask(__name__)
app.config.from_object(Config)

db = SQLAlchemy()
db.init_app(app)

from pyrwbs.models import TestStep, TestDesStep, TestCase, Run, CaseCollector, Collection
migrate = Migrate()
migrate.init_app(app, db)

from .views import *
コード例 #39
0
ファイル: __init__.py プロジェクト: s4mur4i/kickstarter
from flask_migrate import Migrate, MigrateCommand
from sqlalchemy.orm.exc import NoResultFound
from flask_script import Manager
from flask_mail import Mail
from flask_sqlalchemy import SQLAlchemy
from flask_security import Security, SQLAlchemyUserDatastore, login_required, current_user, user_registered
import datetime
from cloudinary import uploader

app = Flask(__name__)
app.config.from_object('kickstarter.default_settings')
manager = Manager(app)

db = SQLAlchemy(app)
migrate = Migrate(app, db)
migrate.init_app(app, db, render_as_batch=True)
manager.add_command('db', MigrateCommand)

from kickstarter.models import *
from forms import ExtendedRegisterForm

user_datastore = SQLAlchemyUserDatastore(db, Member, Role)
security = Security(app, user_datastore, register_form=ExtendedRegisterForm)

mail = Mail(app)
import stripe

stripe.api_key = app.config["STRIPE_API_KEY"]

from mixpanel import Mixpanel
コード例 #40
0
ファイル: __init__.py プロジェクト: someguyiknow/timesketch
def create_app(config=None):
    """Create the Flask app instance that is used throughout the application.

    Args:
        config: Path to configuration file as a string or an object with config
        directives.

    Returns:
        Application object (instance of flask.Flask).
    """
    # Setup the Flask app and load the config.
    app = Flask(__name__, template_folder='templates', static_folder='static')

    if not config:
        config = '/etc/timesketch.conf'

    if isinstance(config, six.text_type):
        os.environ['TIMESKETCH_SETTINGS'] = config
        try:
            app.config.from_envvar('TIMESKETCH_SETTINGS')
        except IOError:
            sys.stderr.write(
                'Config file {0} does not exist.\n'.format(config))
            sys.exit()
    else:
        app.config.from_object(config)

    # Make sure that SECRET_KEY is configured.
    if not app.config['SECRET_KEY']:
        sys.stderr.write('ERROR: Secret key not present. '
                         'Please update your configuration.\n'
                         'To generate a key you can use openssl:\n\n'
                         '$ openssl rand -base64 32\n\n')
        sys.exit()

    # Plaso version that we support
    if app.config['UPLOAD_ENABLED']:
        try:
            from plaso import __version__ as plaso_version
        except ImportError:
            sys.stderr.write('Upload is enabled, but Plaso is not installed.')
            sys.exit()
        app.config['PLASO_VERSION'] = plaso_version

    # Setup the database.
    configure_engine(app.config['SQLALCHEMY_DATABASE_URI'])
    db = init_db()

    # Alembic migration support:
    # http://alembic.zzzcomputing.com/en/latest/
    migrate = Migrate()
    migrate.init_app(app, db)

    # Register blueprints. Blueprints are a way to organize your Flask
    # Flask application. See this for more information:
    # http://flask.pocoo.org/docs/latest/blueprints/
    app.register_blueprint(auth_views)
    app.register_blueprint(home_views)
    app.register_blueprint(sketch_views)

    # Setup URL routes for the API.
    api_v1 = Api(app, prefix='/api/v1')
    for route in V1_API_ROUTES:
        api_v1.add_resource(*route)

    # Register error handlers
    # pylint: disable=unused-variable
    @app.errorhandler(ApiHTTPError)
    def handle_api_http_error(error):
        """Error handler for API HTTP errors.

        Returns:
            HTTP response object (instance of flask.wrappers.Response)
        """
        return error.build_response()

    # Setup the login manager.
    login_manager = LoginManager()
    login_manager.init_app(app)
    login_manager.login_view = 'user_views.login'

    # This is used by the flask_login extension.
    # pylint: disable=unused-variable
    @login_manager.user_loader
    def load_user(user_id):
        """Based on a user_id (database primary key for a user) this function
        loads a user from the database. It is used by the Flask-Login extension
        to setup up the session for the user.

        Args:
            user_id: Integer primary key for the user.

        Returns:
            A user object (Instance of timesketch.models.user.User).
        """
        return User.query.get(user_id)

    # Setup CSRF protection for the whole application
    CSRFProtect(app)

    return app