当前位置: 首页>>代码示例>>Python>>正文


Python flask_restful.Resource方法代码示例

本文整理汇总了Python中flask_restful.Resource方法的典型用法代码示例。如果您正苦于以下问题:Python flask_restful.Resource方法的具体用法?Python flask_restful.Resource怎么用?Python flask_restful.Resource使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在flask_restful的用法示例。


在下文中一共展示了flask_restful.Resource方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: get_app

# 需要导入模块: import flask_restful [as 别名]
# 或者: from flask_restful import Resource [as 别名]
def get_app(self):
        """
        This methods returns a REST API wrapping the pipeline.

        :return: a Flask app (as given by `app = Flask(__name__)` and then configured).
        """
        from flask import Flask, request
        from flask_restful import Api, Resource

        app = Flask(__name__)
        api = Api(app)
        wrapped = self

        class RESTfulRes(Resource):
            def get(self):
                return wrapped.transform(request.get_json())

        api.add_resource(
            RESTfulRes,
            self.route
        )

        return app 
开发者ID:Neuraxio,项目名称:Neuraxle,代码行数:25,代码来源:flask.py

示例2: __init__

# 需要导入模块: import flask_restful [as 别名]
# 或者: from flask_restful import Resource [as 别名]
def __init__(
        self,
        monitoring_service: MonitoringService,
        operator: str,
        info_message: str = DEFAULT_INFO_MESSAGE,
    ) -> None:
        self.flask_app = Flask(__name__)
        self.api = ApiWithErrorHandler(self.flask_app)
        self.rest_server: Optional[WSGIServer] = None

        self.monitoring_service = monitoring_service
        self.operator = operator
        self.info_message = info_message

        resources: List[Tuple[str, Resource, str]] = [
            ("/info", cast(Resource, InfoResource), "info"),
        ]

        for endpoint_url, resource, endpoint in resources:
            self.api.add_resource(
                resource,
                API_PATH + endpoint_url,
                resource_class_kwargs={"monitoring_service": monitoring_service, "api": self},
                endpoint=endpoint,
            ) 
开发者ID:raiden-network,项目名称:raiden-services,代码行数:27,代码来源:api.py

示例3: register_resources

# 需要导入模块: import flask_restful [as 别名]
# 或者: from flask_restful import Resource [as 别名]
def register_resources(resource_path, rest_api):
    for root, _, files in os.walk(os.path.join(resource_path)):
        for filename in files:
            if not filename.startswith("_") and filename.endswith("py"):
                module_path = os.path.join(API_PACKAGE, root[root.index("views"):])
                if module_path not in sys.path:
                    sys.path.insert(1, module_path)
                view = __import__(os.path.splitext(filename)[0])
                resource_list = [o[0] for o in getmembers(view) if isclass(o[1]) and issubclass(o[1], Resource)]
                resource_list = [i for i in resource_list if i != "APIView"]
                for resource_cls_name in resource_list:
                    resource_cls = getattr(view, resource_cls_name)
                    if not hasattr(resource_cls, "url_prefix"):
                        resource_cls.url_prefix = ("",)
                    if isinstance(resource_cls.url_prefix, six.string_types):
                        resource_cls.url_prefix = (resource_cls.url_prefix,)

                    rest_api.add_resource(resource_cls, *resource_cls.url_prefix) 
开发者ID:pycook,项目名称:cmdb,代码行数:20,代码来源:resource.py

示例4: post

# 需要导入模块: import flask_restful [as 别名]
# 或者: from flask_restful import Resource [as 别名]
def post(self):
        args = self.reqparse.parse_args()
        if parse_handler==None:
            return {"result":"fail", "reason":"Please initialize the model first!"}, 400
        #parse = parser.SyntaxnetParser(segmenter_model,parser_model,folder=args['syntax_folder'])
        try:
            return parse_handler.parse_multi_string(args['strings'],tree=args['tree'])
        except Exception as e:
            return {'result': 'fail', "reason": str(e)}, 400

# class SyntaxModelQuery(Resource):
#     def __init__(self):
#         self.reqparse = reqparse.RequestParser()
#         self.reqparse.add_argument('strings', required=True, type=list, help='string is required field, you should input a list of strings', location='json')
#         self.reqparse.add_argument('syntax_folder', required=False, type=str, default=config.syntaxnetFolder,
#                                    location='json')
#         super(SyntaxModelQuery, self).__init__()
#
#     def post(self,folder):
#         args = self.reqparse.parse_args()
#         parse = parser.SyntaxnetParser(folder=args['syntax_folder'])
#         try:
#             return parse.parse_multi_string_custom(args['strings'],folder=folder)
#         except Exception, e:
#             return {'result': 'fail', "reason": e}, 400 
开发者ID:ljm625,项目名称:syntaxnet-rest-api,代码行数:27,代码来源:main.py

示例5: get

# 需要导入模块: import flask_restful [as 别名]
# 或者: from flask_restful import Resource [as 别名]
def get(self, project_id, entity_id):
        """
        Resource to retrieve the casting of a given entity.
        """
        user_service.check_project_access(project_id)
        return breakdown_service.get_casting(entity_id) 
开发者ID:cgwire,项目名称:zou,代码行数:8,代码来源:resources.py

示例6: put

# 需要导入模块: import flask_restful [as 别名]
# 或者: from flask_restful import Resource [as 别名]
def put(self, project_id, entity_id):
        """
        Resource to allow the modification of assets linked to an entity.
        """
        casting = request.json
        user_service.check_manager_project_access(project_id)
        return breakdown_service.update_casting(entity_id, casting) 
开发者ID:cgwire,项目名称:zou,代码行数:9,代码来源:resources.py

示例7: get

# 需要导入模块: import flask_restful [as 别名]
# 或者: from flask_restful import Resource [as 别名]
def get(self, asset_id):
        """
        Resource to retrieve the casting of a given asset.
        """
        asset = assets_service.get_asset(asset_id)
        user_service.check_project_access(asset["project_id"])
        user_service.check_entity_access(asset_id)
        return breakdown_service.get_casting(asset_id) 
开发者ID:cgwire,项目名称:zou,代码行数:10,代码来源:resources.py

示例8: test_restful_with_blueprints

# 需要导入模块: import flask_restful [as 别名]
# 或者: from flask_restful import Resource [as 别名]
def test_restful_with_blueprints(self):
        try:
            from flask_restful import Resource, Api
        except ImportError:
            self.skipTest('Flask-RESTful is not available')
            return

        class SampleResource(Resource):
            status = 200

            @self.metrics.summary('requests_by_status', 'Request latencies by status',
                                  labels={'status': lambda r: r.status_code})
            def get(self):
                if 'fail' in request.args:
                    return 'Not OK', 400
                else:
                    return 'OK'

        blueprint = Blueprint('v1', __name__, url_prefix='/v1')
        api = Api(blueprint)

        api.add_resource(SampleResource, '/sample', endpoint='api_sample')

        self.app.register_blueprint(blueprint)
        self.metrics.init_app(self.app)

        self.client.get('/v1/sample')
        self.client.get('/v1/sample')
        self.client.get('/v1/sample?fail=1')

        response = self.client.get('/metrics')
        self.assertEqual(response.status_code, 200)

        self.assertIn('requests_by_status_count{status="200"} 2.0', str(response.data))
        self.assertRegex(str(response.data), 'requests_by_status_sum{status="200"} [0-9.]+')

        self.assertIn('requests_by_status_count{status="400"} 1.0', str(response.data))
        self.assertRegex(str(response.data), 'requests_by_status_sum{status="400"} [0-9.]+') 
开发者ID:rycus86,项目名称:prometheus_flask_exporter,代码行数:40,代码来源:test_blueprint.py

示例9: get

# 需要导入模块: import flask_restful [as 别名]
# 或者: from flask_restful import Resource [as 别名]
def get(self):
        print(request.args['key'])
        # 요청 데이터에 접근할 때, 해당 key가 존재하지 않는다면 자동으로 '400 bad request'를 abort해 준다

        return [1, 2, 3]
        # Flask의 route 데코레이터를 통한 라우팅에서 이 구문은 TypeError를 발생시키지만
        # Flask-restful의 Resource를 상속받아 API를 구현하면 반환이 자동으로 직렬화되며 Content Type이 application/json으로 처리됨 
开发者ID:JoMingyu,项目名称:--Awesome-Python--,代码行数:9,代码来源:index.py

示例10: __repr__

# 需要导入模块: import flask_restful [as 别名]
# 或者: from flask_restful import Resource [as 别名]
def __repr__(self):
        return "<Resource {0}>".format(self.__class__.__name__) 
开发者ID:okpy,项目名称:ok,代码行数:4,代码来源:api.py

示例11: _import_module_routes

# 需要导入模块: import flask_restful [as 别名]
# 或者: from flask_restful import Resource [as 别名]
def _import_module_routes(self, plugin, plugin_type):
        module = importlib.import_module('plugins.{0}.{1}.{2}.{2}'.format(plugin_type, plugin, ROUTES_MODULE_NAME))
        if hasattr(module, 'PluginRoutes'):
            module.PluginRoutes(self._app, self._config)
        for rest_class in [
            element for element in [getattr(module, attribute) for attribute in dir(module)]
            if inspect.isclass(element) and issubclass(element, Resource) and not element == Resource
        ]:
            for endpoint, methods in rest_class.ENDPOINTS:
                self._api.add_resource(rest_class, endpoint, methods=methods, resource_class_kwargs={'config': self._config}) 
开发者ID:fkie-cad,项目名称:FACT_core,代码行数:12,代码来源:plugin_routes.py

示例12: get

# 需要导入模块: import flask_restful [as 别名]
# 或者: from flask_restful import Resource [as 别名]
def get(self, user_id, resource_id, file_name):
        """Get the file based resource as HTTP attachment

        Args:
            user_id (str): The unique user name/id
            resource_id (str): The id of the resource
            file_name (str): The name of the file to send as attachment

        Returns:
            flask.Response: A HTTP response with the
                            file as attachment in case of success or
                            JSON payload containing the error status
                            and a message

            The HTTP status 200 header::

                Content-Disposition: attachment; filename=my_accumulation.tiff
                Content-Length: 3469
                Content-Type: image/tiff
                Last-Modified: Tue, 07 Jun 2016 10:34:17 GMT
                Cache-Control: public, max-age=43200
                Expires: Tue, 07 Jun 2016 22:34:18 GMT
                ETag: "1465295657.53-3469-665590421"
                Date: Tue, 07 Jun 2016 10:34:18 GMT


            The HTTP status 400 response JSON contents::

                {
                  "Messages": "Resource does not exist",
                  "Status": "error"
                }

        """

        resource_dir = global_config.GRASS_RESOURCE_DIR
        user_export_path =os.path.join(resource_dir, user_id)
        resource_export_path = os.path.join(user_export_path, resource_id)
        resource_export_file_path = os.path.join(resource_export_path, file_name)

        if os.path.exists(resource_export_file_path) is True and \
                          os.access(resource_export_file_path, os.R_OK) is True:

            return send_from_directory(resource_export_path,
                                       file_name, as_attachment=True)
        else:
            return make_response(jsonify({"status":"error",
                                          "message":"Resource does not exist"}), 400) 
开发者ID:mundialis,项目名称:actinia_core,代码行数:50,代码来源:resource_streamer.py

示例13: listen_to_web

# 需要导入模块: import flask_restful [as 别名]
# 或者: from flask_restful import Resource [as 别名]
def listen_to_web(args, max_positions, task, process_batch):
    # initialize web app
    app = Flask(__name__, static_folder='')
    api = Api(app)

    # register route for web server

    # a simple form page
    @app.route('/form')
    def form():
        input = request.args.get('input', '')
        inputs = [input]
        results, outputs = process_inputs(args, inputs, max_positions, task, process_batch)
        return render_template('form.html', input=input, outputs=outputs)

    # a dynamic web app with static resource
    @app.route('/')
    def index():
        return render_template('index.html')

    @app.route('/static/<path:path>')
    def send_static(path):
        return send_from_directory('templates/static', path)

    # a JSON api
    resource_fields = {
        'iteration': fields.Integer,
        'src_str': fields.String, 'hypo_str': fields.String,
        'hypo_score': fields.Float, 'pos_scores': fields.Float, 'gleu_scores': fields.Float,
        'fluency_scores': fields.Float, 'alignments': fields.Float,
        'hypo_score_str': fields.String, 'pos_scores_str': fields.String, 'gleu_scores_str': fields.String,
        'fluency_scores_str': fields.String,  'alignments_str': fields.String
    }
    class API(Resource):
        @marshal_with(resource_fields)
        def get(self, input):
            inputs = [input]
            results, outputs = process_inputs(args, inputs, max_positions, task, process_batch)
            # return outputs # raw string outputs
            return results # json

    # register routes for API
    api.add_resource(API, '/api/<string:input>')

    # listen with web server
    print('server running at port: {}'.format(args.port))
    http_server = WSGIServer(('', args.port), app)
    http_server.serve_forever() 
开发者ID:rgcottrell,项目名称:pytorch-human-performance-gec,代码行数:50,代码来源:interactive.py

示例14: test_flask_restful_resource

# 需要导入模块: import flask_restful [as 别名]
# 或者: from flask_restful import Resource [as 别名]
def test_flask_restful_resource(extension_factory):
    app, limiter = extension_factory(default_limits=["1/hour"])
    api = RestfulApi(app)

    class Va(Resource):
        decorators = [limiter.limit("2/second")]

        def get(self):
            return request.method.lower()

        def post(self):
            return request.method.lower()

    class Vb(Resource):
        decorators = [limiter.limit("1/second, 3/minute")]

        def get(self):
            return request.method.lower()

    class Vc(Resource):
        def get(self):
            return request.method.lower()

    class Vd(Resource):
        decorators = [
            limiter.limit("2/second", methods=['GET']),
            limiter.limit("1/second", methods=['POST']),

        ]

        def get(self):
            return request.method.lower()

        def post(self):
            return request.method.lower()

    api.add_resource(Va, "/a")
    api.add_resource(Vb, "/b")
    api.add_resource(Vc, "/c")
    api.add_resource(Vd, "/d")

    with hiro.Timeline().freeze() as timeline:
        with app.test_client() as cli:
            assert 200 == cli.get("/a").status_code
            assert 200 == cli.get("/a").status_code
            assert 429 == cli.get("/a").status_code
            assert 429 == cli.post("/a").status_code
            assert 200 == cli.get("/b").status_code
            assert 200 == cli.get("/d").status_code
            assert 200 == cli.get("/d").status_code
            assert 429 == cli.get("/d").status_code
            assert 200 == cli.post("/d").status_code
            assert 429 == cli.post("/d").status_code
            timeline.forward(1)
            assert 200 == cli.get("/b").status_code
            timeline.forward(1)
            assert 200 == cli.get("/b").status_code
            timeline.forward(1)
            assert 429 == cli.get("/b").status_code
            assert 200 == cli.get("/c").status_code
            assert 429 == cli.get("/c").status_code 
开发者ID:alisaifee,项目名称:flask-limiter,代码行数:63,代码来源:test_views.py


注:本文中的flask_restful.Resource方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。