在CORS上的TypeError为烧瓶休息

use*_*063 7 python cors flask flask-restful

在burn-restful上尝试新的CORS功能时,我发现只有在函数返回一个字符串时才能应用装饰器.

例如,修改Quickstart示例:

class HelloWorld(restful.Resource):
    @cors.crossdomain(origin='*')
    def get(self):
        return {'hello': 'world'}
Run Code Online (Sandbox Code Playgroud)

抛出:

TypeError: 'dict' object is not callable

难道我做错了什么?

小智 6

我最近自己遇到过这个问题.@MartijnPieters是正确的,decorators无法在视图的单个方法上调用.

我创建了一个包含decorator列表的抽象基类.使用的类Resource(来自flask-restful)也继承了基类,该类是实际将装饰器列表应用于视图的类.

    class AbstractAPI():
       decorators = [cors.crossdomain(origin='*')]

    class HelloWorld(restful.Resource, AbstractAPI):
       #content
Run Code Online (Sandbox Code Playgroud)

不.

在创建Api实例后,只需将装饰器列表添加到参数中

api = Api(app)
api.decorators=[cors.crossdomain(origin='*')]
Run Code Online (Sandbox Code Playgroud)