Атрибут blueprint
Атрибут blueprint применяется к объекту запроса
request и возвращает строку - имя чертежа,
который обрабатывает текущий запрос. Если запрос
обрабатывается маршрутом, зарегистрированным напрямую
в приложении (без чертежа), атрибут вернёт None.
Значение совпадает с первым аргументом, переданным
при создании объекта Blueprint.
Синтаксис
request.blueprint
Пример
Давайте создадим чертёж с именем 'user'
и выведем его имя внутри обработчика:
from flask import Flask, Blueprint, request
app = Flask(__name__)
user_bp = Blueprint('user', __name__)
@user_bp.route('/user')
def user():
return request.blueprint
app.register_blueprint(user_bp)
Результат выполнения кода для адреса /user:
user
Пример
Давайте повесим обработчик напрямую на приложение
и посмотрим, что вернёт атрибут blueprint
вне чертежа:
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
return str(request.blueprint)
Результат выполнения кода для адреса /:
None
Пример
Давайте используем атрибут blueprint внутри
условия, чтобы по-разному обрабатывать запросы
из разных чертежей:
from flask import Flask, Blueprint, request
app = Flask(__name__)
admin_bp = Blueprint('admin', __name__)
@admin_bp.route('/admin')
def admin():
if request.blueprint == 'admin':
return 'admin area'
return 'guest area'
app.register_blueprint(admin_bp)
Результат выполнения кода для адреса /admin:
"admin area"
Смотрите также
-
класс
Request,
который представляет объект запроса -
атрибут
blueprints,
который возвращает список всех чертежей запроса -
атрибут
endpoint,
который возвращает имя обработчика запроса -
атрибут
view_args,
который возвращает аргументы обработчика