Фон
Я пытаюсь настроить чертеж, имя которого совпадает с именем файла, в котором он находится, так что, когда я ссылаюсь на него в моем app.py
, я знаю, откуда берется план. Это должно быть возможно, потому что в примере exploreflask используется тот же шаблон. Тем не менее, я не могу понять, как заставить это работать с моей структурой.
Структура файла
├── app.py
├── frontend
├── __init__.py
└── views
├── home.py
└── __init__.py
Пример
интерфейс / вид / home.py
from flask import Blueprint, render_template
home = Blueprint('home', __name__)
home1 = Blueprint('home1', __name__)
интерфейс / вид / __ __ INIT. Ру
from .home import home
from .home import home1
app.py
from flask import Flask
from frontend.views import home
from frontend.views import home1
print (type(home)) --> <class 'function'>
print (type(home1)) --> <class 'flask.blueprints.Blueprint'>
Поскольку home1
правильно регистрируется как Blueprint
, но home
я не подозреваю, что
есть столкновение имен, но я не знаю, как решить его, несмотря на изучение
это отличная статья об импорте соглашений.
В результате, когда я пытаюсь зарегистрировать свои чертежи в приложении
это будет работать:
app.register_blueprint(home1, url_prefix='/home1') --> Fine
но это не так:
app.register_blueprint(home, url_prefix='/home')
--> AttributeError: 'function' object has no attribute 'name'
Почему бы просто не заняться использованием home1?
- Я хочу понять, как можно разрешить столкновение
- Я хочу иметь возможность использовать имена маршрутов, совпадающие с именами файлов, в которых они находятся, например:
интерфейс / вид / home.py
from flask import Blueprint, render_template
home = Blueprint('home', __name__)
@home.route('/')
def home():
pass