我在学烧瓶。我找到了下面代码的例子
__init__.py
:
from flask import Flask
app = Flask(__name__)
from app import views
view.py
:
from app import app
@app.route('/')
def index():
return "hello world"
和run.py
(顶层):
from app import app
app.run()
我不明白为什么我不能把from app import views
移到顶端。如果我这样做,我会得到错误:
> run.py
Traceback (most recent call last):
File "F:\app1\run.py", line 1, in <module>
from app import app
File "F:\app1\app\__init__.py", line 2, in <module>
from app import views
File "F:\app1\app\views.py", line 1, in <module>
from app import app
ImportError: cannot import name 'app'
Python是一种解释语言。当涉及到一行时,它会尝试执行它。这就是为什么在定义app之前不能导入
views
。你知道吗__init__.py
的工作版本__init__.py
的非工作版本您需要非常小心python导入。你知道吗
在
run.py
文件行中意思是“从包应用程序(带有
__init__.py
文件的文件夹,在您的示例中是F:\app1\app,import object app”,在__init__.py
文件行中创建application object。由于应用程序名
app
与应用程序对象名重合而引起的主要混淆。如果你移动线
以上
view.py
中的from app import app
将引发ImportError
,因为尚未定义来自app
包的对象app
。你知道吗相关问题 更多 >
编程相关推荐