这个介绍Flask代码怎么回事?

时间:2015-01-12 04:20:00

标签: python flask python-import

这是the Flask mega-tutorial.

的开头代码
  

让我们首先为我们的应用包(文件)创建一个简单的init脚本   应用程序/的初始化的.py):

from flask import Flask

app = Flask(__name__)
from app import views
     

上面的脚本只是创建应用程序对象(类   Flask)然后导入我们尚未编写的视图模块   爱好。

我不确定这里发生了什么。如果app是一个类的实例,我们如何在其上使用importfrom app import views这一行对我毫无意义。有人可以帮我理解这里发生的事情吗?为什么我们需要实例化一个类才能导入一些东西?

1 个答案:

答案 0 :(得分:6)

不幸的名字冲突! from app import指的是模块或包 app(在mkdir app教程中此代码之前创建,并在其中编辑此__init__.py,与确实引用类实例的变量名称 app无关。

作为import this颂歌的最后一行,命名空间确实是一件好事 - 但是当它们被隐式使用时(如fromimport,其命名空间是与模块完全分开,无论如何都可以避免故意冲突名称,这样可能会更好,更容易混淆......因为,如果一个人不这样做,那么读者的困惑几乎是不可避免的。教程的作者应特别注意这一点!