我有一个看似简单的问题,我无法解决
我在下面做了一个简短、自我包容的例子:
from flask import Flask
class MyFlask(Flask):
def __init__(self, name):
super().__init__(name)
print(f'Initialising Flask app {id(self)}')
def __del__(self):
print(f'Deleting Flask app {id(self)}')
if __name__ == "__main__":
app = MyFlask(__name__)
app.run(host='0.0.0.0', port=5000, debug=True)
当运行此操作时,您将看到MyFlask的两个实例被初始化,但只有一个实例被销毁。我知道为什么有两个调用init方法(Werkzeug的工作方式),但为什么只有一个被销毁
请参见下面的示例输出:
(venv) D:\Onedrive\Documents\Projects\FlaskReloader>python example.py
Initialising Flask app 1944027544880
* Serving Flask app "example" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
* Restarting with stat
Initialising Flask app 2213899877680
* Debugger is active!
* Debugger PIN: 247-475-647
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
Deleting Flask app 1944027544880
有什么想法吗?谢谢
我认为它是由
Flask.__del__
的覆盖引起的对该
__del__
调用super或不重写相关问题 更多 >
编程相关推荐