将Flask类实例添加到LoginManager类实例中

时间:2018-11-09 10:18:06

标签: python class flask module instance

当我从flask_login模块将Flask类实例传递到LoginManager类实例中时,究竟会发生什么,我找不到任何对初学者的好的解释。

app = Flask(__name__)
login_manager = LoginManager(app)

据我了解,“ app”是Flask类的一个实例。 login_manager也是类LoginManager的实例(来自另一个模块)。为什么我可以轻松地将整个类传递给另一个(模块)类?到底发生了什么?

1 个答案:

答案 0 :(得分:0)

我自己找到了答案。

login_manager = LoginManager(app)中,我们创建了LoginManager类的实例,并传递了应用类,该类是Flask的实例。其背后的原因是,我们现在可以在login_manger实例中使用该应用程序实例的方法。因此,我们可以扩展应用程序的功能。

最好是要了解这是在小的练习档案中复制它。

这是我的示例:

文件1(将作为Flask模块的示例):

class FirstClass:
def _init_(self):
    pass
def say_1(self):
    print("Hello First Class")

def _repr_(self):
    print("hello from first class")

文件2(以LoginManager模块为例):

class SecondClass:
def _init_(self, x):
    self.x = x
    pass
def say_2(self):
    print("Hello Second Class")

文件3(我们从中运行应用程序):

from first import FirstClass
from second import SecondClass

one = FirstClass()
two = SecondClass(one)