【发布时间】:2014-02-16 10:59:53
【问题描述】:
我正在使用 Flask 和 Flask-Login 开发 Web 服务器。它一直在工作,直到我需要将它移到课堂上。由于装饰器而损坏:在我有代码之前
login_manager = LoginManager(app)
...
@login_required
def control_panel():
return render_template(...)
但现在变成了:
class webserver:
def __init__(self):
self.login_manager = LoginManager(app)
...
@login_required
def control_panel(self):
return self.render_template(...)
问题是我真的需要写,
@self.login_required
但它不是有效的语法。我该如何克服这个问题?
谢谢!
【问题讨论】:
-
为什么要写
@self? -
因为它无法识别 login_required,因为它是 login_manager 的一部分,变成了 self.login_manager
-
这毫无意义。只有
self如果它是类的属性,它不是。 -
我不能使用@login_required,因为它没有被定义。
-
那也许你需要导入它。
标签: python class flask decorator