У меня есть небольшая проблема, Flask, кажется, думает, что в этих классах светокопий нет атрибута bp
, и он добавляет маршруты для светокопий, и все же регистрирует ошибку, это приводит меня кwall.
app.py код импорта
for dirpath, dirnames, filenames in os.walk('blueprint'):
for filename in filenames:
if filename.endswith(".py"):
fullpath = os.path.join(dirpath, filename).split(os.sep)
module = ".".join(fullpath)[:-3]
try:
module = importlib.import_module(module)
prefix = module.__name__.split('.')[-1:][0]
if prefix.startswith('_'):
app.register_blueprint(module.bp)
else:
app.register_blueprint(
module.bp, url_prefix=f'/{prefix}')
except Exception as error:
print(f"{type(error)} Unable to load {module}: {error}")
пример плана (т. е. index.py)
bp = Blueprint('', __name__)
@bp.route('/')
def index(*args, **kw):
return render_template('index.html')
output
<class 'AttributeError'> Unable to load <module 'blueprint._index' from '~~~/blueprint/_index.py'>: module 'blueprint._index' has no attribute 'bp'
Как видите, переменная bp
существует, и маршруты добавляются, но без try/except
маршруты не добавляются .. егодовольно раздражает, и я предпочел бы не просто pass
их ..
редактировать
дерево каталогов
- app.py
- blueprints/
- index.py
- etc.py