这个介绍 Flask 代码中发生了什么?
What is going on in this intro Flask code?
的开始代码
Let's start by creating a simple init script for our app package (file
app/init.py):
from flask import Flask
app = Flask(__name__)
from app import views
The script above simply creates the application object (of class
Flask) and then imports the views module, which we haven't written
yet.
我不确定这里发生了什么。如果 app
是 class 的实例,我们如何在其上使用 import
? from app import views
这一行对我来说毫无意义。有人可以帮我了解这里发生了什么吗?为什么我们需要实例化一个 class 来导入某些东西?
不幸的名字冲突! from app import
指的是 模块或包 app
(由 mkdir app
在本教程中的这段代码之前创建,并在 __init__.py
中编辑它), 与 变量名 app
无关,后者确实引用了 class 实例。
正如 import this
的最后一行赞美的那样,命名空间确实是一件好事——但是当它们被隐式使用时(如 from
和 import
,其命名空间是与模块的完全分开)它可能会更好,更容易避免故意冲突名称......因为,如果不这样做,reader 的部分混淆几乎是不可避免的。教程的作者应该特别注意这一点!
Let's start by creating a simple init script for our app package (file app/init.py):
from flask import Flask app = Flask(__name__) from app import views
The script above simply creates the application object (of class Flask) and then imports the views module, which we haven't written yet.
我不确定这里发生了什么。如果 app
是 class 的实例,我们如何在其上使用 import
? from app import views
这一行对我来说毫无意义。有人可以帮我了解这里发生了什么吗?为什么我们需要实例化一个 class 来导入某些东西?
不幸的名字冲突! from app import
指的是 模块或包 app
(由 mkdir app
在本教程中的这段代码之前创建,并在 __init__.py
中编辑它), 与 变量名 app
无关,后者确实引用了 class 实例。
正如 import this
的最后一行赞美的那样,命名空间确实是一件好事——但是当它们被隐式使用时(如 from
和 import
,其命名空间是与模块的完全分开)它可能会更好,更容易避免故意冲突名称......因为,如果不这样做,reader 的部分混淆几乎是不可避免的。教程的作者应该特别注意这一点!