Атрибут name
Атрибут name класса Blueprint содержит строку с именем чертежа.
Имя передаётся первым параметром при создании экземпляра класса
и в дальнейшем используется Flask для регистрации чертежа в приложении
и для построения URL через функцию url_for. Обращаться к атрибуту
можно как к обычному свойству объекта: bp.name.
Имя чертежа должно быть уникальным в пределах одного приложения.
Если зарегистрировать два чертежа с одинаковым именем, Flask выбросит
исключение ValueError. Имя не может содержать точку, так как
точка является разделителем между именем чертежа и именем функции
при построении эндпоинта.
Синтаксис
bp = Blueprint(name, import_name)
bp.name
Пример
Давайте создадим чертеж и выведем его имя в консоль:
from flask import Flask, Blueprint
app = Flask(__name__)
bp = Blueprint('users', __name__)
print(bp.name)
Результат выполнения кода:
"users"
Пример
Давайте зарегистрируем чертеж и построим URL по имени чертежа и имени функции:
from flask import Flask, Blueprint, url_for
app = Flask(__name__)
bp = Blueprint('users', __name__)
@bp.route('/')
def index():
return 'hello'
app.register_blueprint(bp)
with app.test_request_context():
res = url_for('users.index')
print(res)
Результат выполнения кода:
"/"
Пример
Давайте проверим, что имена чертежей должны быть уникальными:
from flask import Flask, Blueprint
app = Flask(__name__)
bp1 = Blueprint('users', __name__)
bp2 = Blueprint('users', __name__)
app.register_blueprint(bp1)
app.register_blueprint(bp2)
Результат выполнения кода:
ValueError: The name 'users' is already registered for this blueprint. Use 'name=' to provide a unique name.
Смотрите также
-
класс
Blueprint,
который создаёт чертёж приложения -
метод
register,
который регистрирует чертёж в приложении -
атрибут
url_prefix,
который задаёт префикс URL для чертежа -
метод
route,
который вешает обработчик на адрес внутри чертежа