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

tem*_*ame 1 python python-import flask

这是Flask mega-tutorial的开场代码.

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

from flask import Flask

app = Flask(__name__)
from app import views
Run Code Online (Sandbox Code Playgroud)

上面的脚本只是创建了应用程序对象(Flask类),然后导入了我们尚未编写的views模块.

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

Ale*_*lli 6

一个不幸的名字冲突! from app import指的是模块或包 app(在教程中通过此代码创建mkdir app__init__.py在其中编辑此内容),与确实引用类实例的变量名 无关app.

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