Beispiel #1
0
def create_app():
    # name is a pre-defined python variable which is set to the name of the module in which it is used
    # the flask object implements a WSGI application - once it is created it acts as a central repository
    # for view functions, url rules, template config, etc
    # should be created in main module or __init__.py of your package
    app = Flask(__name__)
    app.config['MONGODB_SETTINGS'] = {
        'db': 'kart_db',
        'host': '172.21.0.2',
        'port': 27017,
        'authentication_source': 'admin',
        'username': '******',
        'password': '******'
    }
    #print('cf: ' + str(dir(config_filename)))
    #app.config.from_object('settings')
    app.config.from_envvar('FLASK_MODULE_SETTINGS')
    #app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+mysqlconnector://root:[email protected]:3306/mange_takk_db'
    #app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

    # initialize extensions so that extension knows the name of the application object
    api.init_app(app)
    cors.init_app(app)
    # right now all cross origin requests are allowed - need to change this config
    # src: https://stackoverflow.com/questions/26980713/solve-cross-origin-resource-sharing-with-flask
    # cors = CORS(app, resources={r"/api/*": {"origins": "*"}})
    db.init_app(app)
    jwt.init_app(app)

    return app
def init_app(app, **kwargs):
    # pylint: disable=unused-argument
    api_blueprint = Blueprint(
        'api', __name__, url_prefix='/api/v' + api.version[0:1]
    )  #TODO: if you want to modify the name of the api change the url_prefix (for now it is /api/v1)
    api.init_app(api_blueprint)
    app.register_blueprint(api_blueprint)
Beispiel #3
0
def register_extensions(app):
    db.init_app(app)
    mail.init_app(app)
    debug_toolbar.init_app(app)
    migrate.init_app(app, db)
    api.init_app(app)
    return None
Beispiel #4
0
def register_extensions(app):
    db.init_app(app)

    blueprint = Blueprint('api', __name__, url_prefix='/api')
    api.init_app(blueprint)
    app.register_blueprint(blueprint)
    cors.init_app(app)
Beispiel #5
0
def create_app(config=None):
    new_app = Flask(__name__,
                    template_folder='../react_app/build',
                    static_folder='../react_app/build/static')
    new_app.config.from_object(config)

    with new_app.app_context():
        jwt.init_app(new_app)
        bcrypt.init_app(new_app)
        cors.init_app(new_app)
        mysql.init_app(new_app)
        mail.init_app(new_app)

    from model import temp_blacklist

    @jwt.token_in_blacklist_loader
    def check_if_token_in_blacklist(decrypted_token):
        return decrypted_token['jti'] in temp_blacklist

    # Let react handle routing
    @new_app.route('/', defaults={'path': ''})
    @new_app.route('/<path:path>')
    def serve(path):
        if path and os.path.exists(safe_join(new_app.template_folder, path)):
            return send_from_directory(new_app.template_folder, path)
        else:
            return send_from_directory(new_app.template_folder, 'index.html')

    from resources.authentication import (UserRegistration, UserLogin,
                                          TokenRefresh, UnsetToken, AdminLogin,
                                          AdminRegister)
    from resources.user import GetUserInfo, UpdateUserInfo
    from resources.products import (TrackProduct, NewComments, GetComments,
                                    GetSpecificProduct)
    from resources.admin import Announcement

    api.add_resource(UserRegistration, '/register')
    api.add_resource(UserLogin, '/login')
    api.add_resource(TokenRefresh, '/refresh')
    api.add_resource(UnsetToken, '/revoke')
    api.add_resource(GetUserInfo, '/user')
    api.add_resource(UpdateUserInfo, '/user/<string:option>')
    api.add_resource(TrackProduct, '/product')
    api.add_resource(GetSpecificProduct,
                     '/product/<string:retailer>/<string:pid>')
    api.add_resource(NewComments, '/comment')
    api.add_resource(GetComments,
                     '/comment/<string:retailer>/<string:prod_id>')
    api.add_resource(AdminLogin, '/admin-login')
    api.add_resource(AdminRegister, '/admin-register')
    api.add_resource(Announcement, '/announcement')

    api_bp = Blueprint('api', __name__)
    api.init_app(api_bp)
    new_app.register_blueprint(api_bp, url_prefix='/api')
    return new_app
Beispiel #6
0
def register_api(app):
    from extensions import api
    from resources import FilmApi, FilmListApi, SignupApi, LoginApi
    from resources.errors import errors

    api.errors = errors
    api.add_resource(FilmApi, '/api/v1/film/<int:film_id>')
    api.add_resource(FilmListApi, '/api/v1/film')
    api.add_resource(SignupApi, '/api/v1/signup')
    api.add_resource(LoginApi, '/api/v1/login')
    api.init_app(app)
Beispiel #7
0
def create_app(script_info=None):

    app = Flask(__name__)

    load_dotenv(".env", verbose=True)
    app_settings = os.environ.get("APP_SETTINGS")
    if not app_settings:
        raise ValueError(
            'APP_SETTINGS environment variable is not set. Aborting.')
    app.config.from_object(app_settings)

    # Migration purposes
    from models import user, remaining_employee, company, address  # NOQA

    jwt.init_app(app)
    db.init_app(app)
    api.init_app(app)
    ma.init_app(app)
    migrate.init_app(app, db)
    init_celery(app)
    mail.init_app(app)

    api.add_resource(UserLogin, "/login")
    api.add_resource(UserRegister, "/register")
    api.add_resource(UserRegister, "/register/<string:confirmation_token>")
    api.add_resource(User, "/user")
    api.add_resource(UserList, "/users")
    api.add_resource(UserInvite, "/invite")

    @app.route('/ping')
    def pong():
        return 'pong'

    @api.errorhandler(Unauthorized)
    def unauthorized_page(error):
        return {"message": "401, change this on prod."}, 401

    @api.errorhandler(Forbidden)
    def forbidden_page(error):
        return {"message": "403, change this on prod."}, 403

    @api.errorhandler(NotFound)
    def page_not_found(error):
        return {"message": "404, change this on prod."}, 404

    @api.errorhandler(MethodNotAllowed)
    def method_not_allowed(error):
        return {"message": "405, change this on prod."}, 405

    @api.errorhandler(InternalServerError)
    def server_error_page(error):
        return {"message": "500, change this on prod."}, 500

    return app
Beispiel #8
0
 def register_extensions(app):
     """ Initialize Database """
     # Order matters: Initialize SQLAlchemy before Marshmallow
     db.app = app
     db.init_app(app)
     """ Initialize API """
     api.app = app
     api.init_app(app)
     """ Initialize Marshmallow """
     ma.app = app
     ma.init_app(app)
Beispiel #9
0
def extensions(app):
    """
    Register 0 or more extensions (mutates the app passed in).

    :param app: Flask application instance
    :return: None
    """

    migrate.init_app(app, db)
    cors.init_app(app)
    bcrypt.init_app(app)
    api.init_app(app)
Beispiel #10
0
def create_app():
    app = Flask(__name__)
    app.config.from_object(Config)

    db.init_app(app)
    migrate.init_app(app, db)
    api.init_app(app)
    dynaconf.init_app(app)

    api.add_resource(ClientResource, '/client', '/client/<int:id_client>')
    api.add_resource(BookResource, '/book', '/book/<int:id_book>')
    return app
Beispiel #11
0
def create_app(config_name='dev'):
    app = Flask(__name__)

    app.config.from_object(config_factory[config_name])
    db.init_app(app)
    api.init_app(app)
    cors.init_app(app)
    migrate.init_app(app, db)
    ma.init_app(app)

    router_register(app)

    return app
Beispiel #12
0
def register_extensions(app):
    db.init_app(app)
    migrate.init_app(app, db)

    cors.init_app(app, supports_credentials=True)

    api.init_app(app, version='1.0', title='Swagger API',
                 description='API для сервиса интерактовной карты благоустройства г. Москва')

    api.add_namespace(ns_map)
    api.add_namespace(ns_data_set)
    api.add_namespace(ns_reports)
    api.add_namespace(ns_dictionary)
Beispiel #13
0
def register_extension(app):
    db.init_app(app)

    # the callbacks needs to be supplied before init_app
    jwt.identity_callback = identity
    jwt.authentication_callback = authenticate
    jwt.init_app(app)

    api.add_resource(Item, '/item/<string:name>')
    api.add_resource(ItemList, '/items')
    api.add_resource(Store, '/store/<string:name>')
    api.add_resource(StoreList, '/stores')
    api.add_resource(UserRegistor, '/register')
    api.init_app(app)
def create_app(config=None):
    app = Flask('scaffold', instance_relative_config=True)
    if config is not None:
        app.config.from_object(config)

    init_logger(app)
    logger.info('starting %s' % app.name)
    db.init_app(app)
    cors.init_app(app)
    celery.config_from_object(app.config)
    login_manager.init_app(app)
    api.init_app(app)
    init_api(api, app)
    logger.info('started %s' % app.name)

    return app
Beispiel #15
0
def create_app():
    app = Flask(__name__)
    app.config['SQLALCHEMY_DATABASE_URI'] = CREDENTIALS['database']['db_url']
    cors = CORS(app, resources={r"/*": {"origins": "*"}})

    api.add_resource(translation_endpoint.TranslationByIdEndpoint,
                     '/translation/<id>')
    api.add_resource(translation_endpoint.TranslationByLanguageEndpoint,
                     '/translation/lang/<language>')

    api.add_resource(exercise_endpoint.ExerciseEndpoint, '/exercise')

    api.init_app(app)
    db.init_app(app)

    return app
Beispiel #16
0
def create_app():
    app = Flask(__name__)
    CORS(app, supports_credentials=True)
    app.config.from_object(settings)

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

    # api
    views.init(api)
    api.init_app(app)

    redis.init_app(app)

    return app
Beispiel #17
0
def create_app(conf=None) -> Flask:
    conf = conf or get_config()
    app = Flask(__name__)
    app.config.from_object(conf)

    # register with app
    db.init_app(app)
    migrate.init_app(app, db)
    api.init_app(app)
    middleware_manager.init_app(app)
    jwt.init_app(app)
    secret_generator_cli.init_app(app)
    if conf.DEBUG:
        code_generator.init_app(app)
        seeds.init_app(app)

    return app
Beispiel #18
0
def create_app(db_uri, keys_dir_path):
    app = Flask(__name__)

    private_key = ''
    public_key = ''
    with open(keys_dir_path + '/jwtRS256.key', 'r') as content_file:
        private_key = content_file.read()

    with open(keys_dir_path + '/jwtRS256.key.pub', 'r') as content_file:
        public_key = content_file.read()

    app.config['JWT_ALGORITHM'] = 'RS256'
    app.config['JWT_PUBLIC_KEY'] = public_key
    app.config['JWT_PRIVATE_KEY'] = private_key
    app.config['JWT_IDENTITY_CLAIM'] = 'sub'
    app.config['JWT_USER_CLAIMS'] = 'payload'
    app.config['JWT_CLAIMS_IN_REFRESH_TOKEN'] = False
    app.config['JWT_ERROR_MESSAGE_KEY'] = 'message'
    app.config['JWT_TOKEN_LOCATION'] = ('headers', 'cookies')

    app.config['SQLALCHEMY_DATABASE_URI'] = db_uri
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

    app.config['PROPAGATE_EXCEPTIONS'] = True

    from extensions import (
        api,
        jwt,
        db,
    )

    jwt.init_app(app)
    db.init_app(app)

    import models
    with app.app_context():
        db.create_all()

    import resources
    resources.BaseResource.register(api)
    api.init_app(app)

    CORS(app)

    return app
Beispiel #19
0
def register_extensions_production(app):
    """Register Flask extensions."""

    from extensions import api
    api.init_app(app)
    cors.init_app(app, supports_credentials=True)
    # need this for true prod
    cors.init_app(
        app, 
        resources={
            r"/*": {"origins": "https://www.icarusmed.com"}
        }, 
        supports_credentials=True)

    jwt.init_app(app)
    csrf.init_app(app)

    return None
Beispiel #20
0
def create_app():
    app = Flask(__name__)
    app.config.from_object(Config)
    app.json_encoder = JSONEncoder

    blueprint = Blueprint("api", __name__)

    #app.register_blueprint(blueprint)

    api.init_app(blueprint)
    app.register_blueprint(blueprint)
    mars.init_app(app)
    mongo.init_app(app)
    #bcrypt.init_app(app)

    api.add_namespace(namespace_chat)
    api.add_namespace(namespace_auth)
    api.add_namespace(namespace_user)
    api.add_namespace(namespace_requirements)

    return app
Beispiel #21
0
def initialize_app():
    app = Flask(os.getenv('MONGO_DBNAME', 'MobileMechanic'))
    app.config.from_object('configuration.DevelopmentConfig')
    # config_prefix is used incase we want to add more databases
    mongo.init_app(app, config_prefix='MONGO')
    jwt = JWT(app, authenticate, identity)
    api_base_string = '/mobilemechanic/api/v1.0/'
    api.add_resource(UserAPI, api_base_string + 'users/<int:user_id>')
    api.add_resource(TokenAPI, api_base_string + 'users/<int:user_id>/token')
    api.add_resource(MechanicAPI,
                     api_base_string + 'users/<int:user_id>/mechanic')
    api.add_resource(JobAPI, api_base_string + 'users/<int:user_id>/jobs')
    api.add_resource(
        ImageUploadAPI,
        api_base_string + 'users/<int:user_id>/jobs/<job_id>/picture')
    api.add_resource(
        QuotesAPI,
        api_base_string + 'users/<int:user_id>/jobs/<job_id>/quotes')

    api.init_app(app)
    return app
Beispiel #22
0
def register_extensions(app):
    api.init_app(app)
    db.init_app(app)
    migrate.init_app(app, db)
# Third part modules
from flask import Blueprint

# Local modules
from . import views
from extensions import api

bp = Blueprint('api', __name__, url_prefix='/api')
api.init_app(bp)

views.configure(bp, api)
Beispiel #24
0
from flask import Flask
import config
from extensions import db, cors, api

from auth.views import auth_bp
from network.views import network_bp

app = Flask(__name__)

app.config.from_object(config.Config)

# registers app
db.init_app(app)
cors.init_app(app)
api.init_app(app)

# registers blueprint
app.register_blueprint(auth_bp)
app.register_blueprint(network_bp)

if __name__ == "__main__":
    app.run(debug=True, port=4444)