让我们首先为我们的应用包(文件)创建一个简单的init脚本 应用程序/的初始化的.py):
from flask import Flask app = Flask(__name__) from app import views
上面的脚本只是创建应用程序对象(类 Flask)然后导入我们尚未编写的视图模块 爱好。
我不确定这里发生了什么。如果app
是一个类的实例,我们如何在其上使用import
? from app import views
这一行对我毫无意义。有人可以帮我理解这里发生的事情吗?为什么我们需要实例化一个类才能导入一些东西?
答案 0 :(得分:6)
不幸的名字冲突! from app import
指的是模块或包 app
(在mkdir app
教程中此代码之前创建,并在其中编辑此__init__.py
,与确实引用类实例的变量名称 app
无关。
作为import this
颂歌的最后一行,命名空间确实是一件好事 - 但是当它们被隐式使用时(如from
和import
,其命名空间是与模块完全分开,无论如何都可以避免故意冲突名称,这样可能会更好,更容易混淆......因为,如果一个人不这样做,那么读者的困惑几乎是不可避免的。教程的作者应特别注意这一点!