Exemplo n.º 1
0
def register_extensions(app):
    """Register Flask extensions."""
    bcrypt.init_app(app)
    cache.init_app(app)
    db.init_app(app)
    migrate.init_app(app, db)
    jwt.init_app(app)
Exemplo n.º 2
0
def create_app(env_name):
    app = Flask(__name__)
    app.config.from_object(app_config[env_name])
    api = Api(app)

    bcrypt.init_app(app)
    db.init_app(app)
    jwt.init_app(app)
    cors.init_app(app)
    app.errorhandler(InvalidUsage)(error_handler)

    api.add_resource(UserRegister, '/register')
    api.add_resource(UserLogin, '/login')
    api.add_resource(UserMe, '/me')
    api.add_resource(UserResource, '/@<string:username>')
    api.add_resource(PostsByUserResource, '/@<string:username>/posts')
    api.add_resource(FavoritePostsByUserResource,
                     '/@<string:username>/favorites')
    api.add_resource(TagResource, '/tags')
    api.add_resource(PostsResource, '/posts')
    api.add_resource(PostResource, '/posts/<int:post_id>')
    api.add_resource(FavoriteResource, '/posts/<int:post_id>/favorite')
    api.add_resource(CommentsResource, '/posts/<int:post_id>/comments')
    api.add_resource(CommentResource,
                     '/posts/<int:post_id>/comments/<int:comment_id>')

    @app.route('/', methods=['GET'])
    def index():
        return 'Welcome'

    return app
Exemplo n.º 3
0
def create_app(config_class=DevelopmentConfig):
    app = Flask(__name__)
    app.config.from_object(config_class)
    load_dotenv()
    jwt.init_app(app)
    # CORS(app)
    api = Api(app)
    db.init_app(app)
    app.cli.add_command(create_tables)  # To interact with app from CLI
    b_crypt.init_app(app)
    ma.init_app(app)
    migrate = Migrate(app, db)
    # oauth.init_app(app)

    # USER API
    api.add_resource(UserRegister, '/user/register')
    api.add_resource(UserLogin, '/user/login')
    api.add_resource(UserLogout, '/user/logout')
    api.add_resource(UserPasswordRestoreRequest, '/user/restore')
    api.add_resource(UserPasswordReSetter, '/user/restore/<string:token>')
    api.add_resource(User, '/user/<int:_id>')
    api.add_resource(UserList, '/users/<int:limit>')
    api.add_resource(TokenRefresher, '/user/refreshing')
    api.add_resource(UserEmail2FA, '/user/fa2_auth/<string:token>')

    # REQUEST API
    api.add_resource(RequestsList, '/requests')
    api.add_resource(RequestCreation, '/requests/new')

    print(f"App current configuration: {config_class.CONFIG_NAME}")

    # OAuth API
    # api.add_resource(GithubLogin, "/login/oauth/github")
    # api.add_resource(GithubAuthorize, "/login/oauth/github/authorized")

    # CONFIRMATION API
    api.add_resource(Confirmation, '/user/confirmation/<string:confirmation_id>')

    # api.add_resource(User, '/users/<int:user_id>')
    api.add_resource(Content, '/content')

    @app.route('/')
    def home():
        return render_template("index.html")

    # Logging
    log_level = logging.INFO if app.config['DEBUG'] else logging.ERROR
    handler = WatchedFileHandler('server.log')
    formatter = logging.Formatter('%(asctime)s | %(levelname)s: %(message)s',
                                  '%d-%m-%Y %H:%M:%S')
    handler.setFormatter(formatter)
    root = logging.getLogger()
    root.setLevel(log_level)
    root.addHandler(handler)
    logging.info('\n------------------- Starting Server -------------------')

    return app
Exemplo n.º 4
0
def register_extensions(app):
    """Register Flask extensions."""
    origins = app.config.get('CORS_ORIGIN_WHITELIST', '*')
    cors.init_app(app, resources={r"/api/*": {"origins": origins}})
    bcrypt.init_app(app)
    cache.init_app(app)
    db.init_app(app)
    migrate.init_app(app, db)
    jwt.init_app(app)
    docs.init_app(app)
    api.init_app(app)
Exemplo n.º 5
0
def create_app():
    app = Flask(__name__)
    app.config.from_object(Config)
    api.init_app(app)
    jwt.init_app(app)
    db.init_app(app)

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

    return app
Exemplo n.º 6
0
def register_extensions(app, config_object):
    """Init extension. You can see list extension in the extensions.py

    Args:
        app: Flask handler application
        config_object: settings of the application
    """
    # Order matters: Initialize SQLAlchemy before Marshmallow
    # create log folder
    db.app = app
    db.init_app(app)
    ma.init_app(app)
Exemplo n.º 7
0
def register_extensions(app):
    from src.extensions import db
    from src.extensions import migrate
    from src.extensions import socketio
    from src.extensions import limiter
    db.init_app(app)
    migrate.init_app(app, db)
    socketio.init_app(app,
                      cors_allowed_origins='*',
                      ping_timeout=1000,
                      ping_interval=50)
    limiter.init_app(app)
Exemplo n.º 8
0
def apply_extensions(app):
    """
     Mutate the flask application with extensions
    :param app: flask instance
    :return: None
    """

    # SQL Alchemy
    db.init_app(app)

    # Marshmallow
    marshmallow.init_app(app)

    return None
Exemplo n.º 9
0
def create_app(config_name):
    app = Flask(__name__, static_folder="static")
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)

    db.init_app(app)
    route_app(app)
    import src.orm_models
    app.cli.add_command(src.orm_models.init_db_command)

    #Fix mimetype issue
    mimetypes.add_type('text/javascript', '.js')

    return app
    
Exemplo n.º 10
0
def create_app():
    app = Flask(__name__)
    app.secret_key = 'ChangeMe!'
    app.config['JWT_BLACKLIST_ENABLED'] = True
    app.config['JWT_BLACKLIST_TOKEN_CHECKS'] = ['access', 'refresh']
    app.config['SQLALCHEMY_DATABASE_URI'] = "sqlite://"
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

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

    # In a real application, these would likely be blueprints
    register_endpoints(app)

    return app
Exemplo n.º 11
0
def create_app(config_class='configurations.py'):
    app = Flask(__name__)
    app.config.from_object(ProductionConfig)
    load_dotenv()
    jwt.init_app(app)
    api = Api(app)
    db.init_app(app)
    app.cli.add_command(create_tables)  # To interact with app from CLI
    b_crypt.init_app(app)
    ma.init_app(app)
    migrate = Migrate(app, db)
    oauth.init_app(app)

    # USER API
    api.add_resource(UserRegister, '/users/register')
    api.add_resource(UserLogin, '/users/login')
    api.add_resource(UserLogout, '/users/logout')
    api.add_resource(User, '/user/<int:_id>')
    api.add_resource(UserList, '/users/<int:limit>')
    api.add_resource(TokenRefresher, '/users/refreshing')
    api.add_resource(UserEmail2FA, '/users/fa2_auth/<string:token>')

    # OAuth API
    api.add_resource(GithubLogin, "/login/oauth/github")
    api.add_resource(GithubAuthorize, "/login/oauth/github/authorized")

    # CONFIRMATION API
    api.add_resource(Confirmation, '/user_id/<string:confirmation_id>')

    # resources.add_resource(User, '/users/<int:user_id>')
    api.add_resource(CreatePost, '/posts/create')
    api.add_resource(Content, '/content')

    # Logging
    log_level = logging.INFO if app.config['DEBUG'] else logging.ERROR
    handler = WatchedFileHandler('server.log')
    formatter = logging.Formatter('%(asctime)s | %(levelname)s: %(message)s',
                                  '%d-%m-%Y %H:%M:%S')
    handler.setFormatter(formatter)
    root = logging.getLogger()
    root.setLevel(log_level)
    root.addHandler(handler)
    logging.info('\n------------------- Starting Server -------------------')

    return app
Exemplo n.º 12
0
 def setUp(self):
     db.init_app(self.app)
     db.create_all()
Exemplo n.º 13
0
def register_extensions(app):
    """Flask extensions."""
    bcrypt.init_app(app)
    db.init_app(app)
    migrate.init_app(app, db)
    admin.init_app(app)
Exemplo n.º 14
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager
from src.extensions import db
from src.app import create_app
from src.config.config import Config
from src.models import *

app = create_app(Config)
db.init_app(app)
migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)

if __name__ == '__main__':
    manager.run()
Exemplo n.º 15
0
def register_extensions(app):
    db.init_app(app)
    ma.init_app(app)
Exemplo n.º 16
0
def configure_extensions(app):
    """
    配置扩展
    :param app:  app实例
    :return:
    """
    # Flask-SQLAlchemy
    db.init_app(app)

    # Flask-Mail
    mail.init_app(app)

    # Flask-Redis
    redis_store.init_app(app)

    # Flask-Cache
    cache.init_app(app)

    # Flask-Limiter
    limiter.init_app(app)

    # Flask-Cors
    if app.config.get('ALLOW_GLOBAL_CORS'):
        cors.init_app(app)

    # Flask-Session
    session.init_app(app)

    # # Flask-Login
    # login_manager.login_view = app.config["LOGIN_VIEW"]
    # login_manager.refresh_view = app.config["REAUTH_VIEW"]
    # login_manager.login_message_category = app.config["LOGIN_MESSAGE_CATEGORY"]
    # login_manager.needs_refresh_message_category = \
    #     app.config["REFRESH_MESSAGE_CATEGORY"]
    # login_manager.anonymous_user = Guest

    @login_manager.user_loader
    def load_user(user_id):
        """
        从数据库加载用户信息
        :param user_id:
        :return:
        """
        from src.models.user import User
        user_instance = User.query.filter_by(id=user_id).first()
        if user_instance:
            g.user = user_instance
            return user_instance
        else:
            g.user = None
            return None

    login_manager.init_app(app)

    # Flask-Allows
    allows.init_app(app)

    # Flask-RESTful
    api.init_app(app)

    # Flask-Debugtoolbar
    # toolbar.init_app(app)

    # Flask-Babel
    babel.init_app(app)

    # Flask-Gzip
    gzip.init_app(app)
Exemplo n.º 17
0
def register_extensions(app):
    db.init_app(app)
    api.init_app(app, add_specs=app.config['SPECS'])
    ma.init_app(app)
Exemplo n.º 18
0
def register_extensions(app):
    db.init_app(app)
    migrate.init_app(app, db)
    ma.init_app(app)