def create_app(config=None): app = Flask(__name__) app.config.from_object("purepage.config_default") if config: app.config.from_object(config) app.url_map.converters['no'] = NoConverter app.route("/webhooks")(Webhooks()) route_views(app) db.init_app(app) github.init_app(app) mail.init_app(app) limiter.init_app(app) bp_api = Blueprint('api', __name__, static_folder='static') api.init_app(app, blueprint=bp_api, docs=__doc__) for x in resources: api.add_resource(x) api.add_resource(Permission, auth=auth) auth.init_api(api, fn_user_role=fn_user_role) app.register_blueprint(bp_api, url_prefix='/api') gen = Gen(api) gen.resjs() gen.resdocs() gen.permission() return app
def create_app(test=False): app = Flask(__name__) app.config["ADMIN_EMAIL"] = "*****@*****.**" app.config["ADMIN_PASSWORD"] = "******" if test: app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite://" app.config["SQLALCHEMY_ECHO"] = True else: db_path = os.path.join(app.root_path, "todos.db") app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///" + db_path db.init_app(app) bp_api = Blueprint('api', __name__, static_folder='static') api.init_app(app, blueprint=bp_api, docs=__doc__) auth.init_api(api, fn_user_role=fn_user_role) api.add_resource(Todos) api.add_resource(User) api.add_resource(Permission, auth=auth) api.add_resource(ApiInfo, api=api) def make_view(filename): return lambda *args, **kwargs: app.send_static_file(filename) for url, filename in url_views: end = os.path.splitext(filename)[0] app.route(url, endpoint=end)(make_view(filename)) app.before_first_request(before_first_request) app.register_blueprint(bp_api, url_prefix='/api') gen = Gen(api) gen.resjs('static/js/res.js') gen.resdocs('static/resdocs.html', resjs='/static/js/res.js', bootstrap='/static/css/bootstrap.min.css') gen.permission('static/permission.html', resjs='/static/js/res.js', bootstrap='/static/css/bootstrap.min.css', vuejs='/static/js/vue.js') return app