当我从flask_login模块将Flask类实例传递到LoginManager类实例中时,究竟会发生什么,我找不到任何对初学者的好的解释。
app = Flask(__name__)
login_manager = LoginManager(app)
据我了解,“ app”是Flask类的一个实例。 login_manager也是类LoginManager的实例(来自另一个模块)。为什么我可以轻松地将整个类传递给另一个(模块)类?到底发生了什么?
答案 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)