Flask蓝图无法导入模块

2024-05-23 19:15:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习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因为它需要处理路由。为什么这条线会导致导入问题,我该如何解决?在


Tags: namefrompyimportapp应用程序flaskinit
1条回答
网友
1楼 · 发布于 2024-05-23 19:15:19

蓝图是用来定义应用程序路由的,所以您不需要在同一位置使用应用程序实例和蓝图来定义路由。在

#nomad.py
@nblueprint.route('/')

你得到了错误,因为当你注册蓝图的同时,你使用应用实例。所以正如您所说,当您删除from app ...时,它解决了问题。在

建议的方法是在blueprint包中为该蓝图定义视图在示例nomad包中,应该如下所示:

^{pr2}$

相关问题 更多 >