我有一个非常小的Flask应用,其布局如下:
tinker/
main.py
/my_package
init.py
views.py
当我修补时> python main.py一切运行正常。以下是每个文件的内容:
main.py:
from my_package import app
app.run()
my_package / init。py:
from flask import Flask
app = Flask(__name__)
from my_package import views
my_package / views.py:
from my_package import app
@app.route('/')
def home():
return 'Ola!!!!!'
虽然以上所有代码在我尝试通过使用一个create_app()代码模式进行略微修改时都可以正常运行,如下所示,views.py引发以下异常:“ ImportError:无法从'my_package导入名称'app' '“有没有不用蓝图来解决问题的方法?
main.py:
from my_package import create_app
app = create_app()
app.run()
my_package / init。py:
from flask import Flask
def create_app():
app = Flask(__name__)
from my_package import views
return app
my_package / views.py:
from my_package import app
@app.route('/')
def home():
return 'Ola!!!!!'
init.py需要重命名为__init__.py
将app = Flask(__name__)
移到create_app
方法之外
在views.py中更改为from . import app