gpt4 book ai didi

python - 为什么 `from . import views`可以解决Flask中的circle import?

转载 作者:行者123 更新时间:2023-11-28 19:13:19 25 4
gpt4 key购买 nike

<分区>

我学习Larger Applications .In this document,它说:“所有 View 函数(顶部带有 route() 装饰器的函数)都必须导入到 init.py 文件中。不是对象本身, 但它所在的模块。"
我不知道为什么我这样做时应该: from 。 import views,它成功了。虽然from views import *也可以很好地工作。
我这样组织这些文件:

myapplication/
runner.py
myflask/
__init__.py
views.py
templates/
static/
...

运行者.py:

from testFlask import app
app.run()

myflask/__init__.py:

from flask import Flask
app = Flask(__name__)
from . import views # why this can work????

myflask/views.py:

from . import app
@app.route('/')
def index():
return 'Hello World!'

然后我运行它:

$ cd myapplication
$ python runner.py

可以运行这个 Flask 应用程序了。但是我想知道为什么 from . import views 可以解决flask中的这个circle import问题吗?为什么文档说:不是对象本身,而是它所在的模块????

但是,当我这样做时:

#some_dir/
# application.py
# views.py

#application.py
from flask import Flask
app = Flask(__name__)
import views # it doesn't work
# from views import * # it works
app.run()

#views.py
from application import app
@app.route('/')
def index():
return 'Hello World!'

#run it
$ python application.py

它不起作用。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com