我正在学习Flask的蓝图,但是我在导入正确的模块时遇到了麻烦。这是我的设置:
文件夹结构:
- app.py
templates/
nomad/
- __init__.py
- nomad.py
在应用程序副本在
^{pr2}$在游牧民.py在
from flask import render_template, Blueprint, abort
from app import app
nblueprint = Blueprint('nblueprint', __name__, template_folder='templates')
# Routes for this blueprint
@app.route ....
__init__.py
为空
我得到的错误是:ImportError: cannot import name nblueprint
。我知道我的进口声明可能是错的,但应该是什么?为什么?在
编辑:
如果我删除from app import app
,那么我就可以成功地导入nblueprint
应用程序副本. 但我需要app
游牧民.py因为它需要处理路由。为什么这条线会导致导入问题,我该如何解决?在
蓝图是用来定义应用程序路由的,所以您不需要在同一位置使用应用程序实例和蓝图来定义路由。在
你得到了错误,因为当你注册蓝图的同时,你使用应用实例。所以正如您所说,当您删除
from app ...
时,它解决了问题。在建议的方法是在blueprint包中为该蓝图定义视图在示例
^{pr2}$nomad
包中,应该如下所示:相关问题 更多 >
编程相关推荐