Beispiel #1
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
Beispiel #2
0
def register_blueprints(app):
    """Register Flask blueprints."""
    origins = app.config.get("CORS_ORIGIN_WHITELIST", "*")
    cors.init_app(routeText, origins=origins)
    cors.init_app(staticServing, origins=origins)
    app.register_blueprint(routeText)
    app.register_blueprint(staticServing)
Beispiel #3
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)
Beispiel #4
0
def create_app():
    """Create a Flask application"""
    app = Flask(__name__)
    app.config.from_pyfile('config.py')
    cors.init_app(app)

    for blueprint in all_blueprints:
        import_module(blueprint.import_name)
        app.register_blueprint(blueprint)

    # Needed when running behind Nginx under Docker for authorization
    app.wsgi_app = ProxyFix(app.wsgi_app, x_for=1, x_host=1)
    return app
Beispiel #5
0
def register_blueprints(app):
    """Register Flask blueprints."""
    origins = app.config.get('CORS_ORIGIN_WHITELIST', '*')
    cors.init_app(user.views.blueprint, origins=origins)

    app.register_blueprint(user.views.blueprint)
Beispiel #6
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)