【发布时间】:2020-06-20 03:54:53
【问题描述】:
我一直在关注 Miguel grinberg 的烧瓶巨型教程和第一个“Hello World!”程序让我很困惑。
更具体地说,让我感到困惑的是从 init.py 模块中导入 routes 模块。
下面是 init.py 文件:
#__init__.py file:
from flask import Flask
app = Flask(__name__)
from app import routes
# above line is the source of confusion.
下面是 routes.py 文件
from app import app
@app.route('/')
@app.route('/index')
def index():
return "Hello, world!"
现在,如果我理解正确的话,app 是 Flask 类的对象。当我们在 routes.py 中执行“从应用程序导入应用程序”时,我知道我们正在导入在 init.py 文件中创建的应用程序对象。
接下来的代码是为这个对象注册一个路由。
所以我的问题是为什么我们需要在 init.py 中导入这个 routes 模块?
我的意思是在路由模块中,应用程序对象已被导入,并且已在其上注册路由。所以这应该反映在 init.py 中创建的应用程序对象上。那么为什么我们需要导入它呢?
我知道如果我们删除 import routes 语句它不起作用。但想知道为什么。
编辑:虽然我有编程背景,但我是 python 新手。所以在执行项目时可能会误解python文件是如何执行的。另外我认为这与 python 作为解释语言有关。
【问题讨论】: