6

使用python烧瓶模块,我想拥有

app = flask.Flask(__name__)

作为类的属性:

class Handler(object):
    def __init__(self):
        self.datastores = {}
        self.websocket_queue = gevent.queue.JoinableQueue()
        self.app = flask.Flask(__name__)

问题是如何访问装饰器呢?

    @self.app.route('/socket.io/<path:remaining>')
    def socketio(self, remaining):

这会产生错误NameError: name 'self' is not defined 谢谢

4

2 回答 2

2

这取决于 - 如果您在Handler类的方法中添加处理程序,它应该可以正常工作:

def add_routes(self):
    @self.app.route("/some/route")
    def some_route():
        return "At some route"

如果您尝试在外部添加路由,Handler则需要使用对您的Handler实例的引用:

handler = Handler()

@handler.app.route("/some/route")
def some_route():
    return "At some route"
于 2013-04-08T15:01:28.130 回答
2

您可以尝试使用Flask-Classy ,因为它提供了一种通过Python-Flask使用类的简单方法。

于 2013-04-08T14:32:13.833 回答