Flask — это микрофреймворк для Python, который позволяет создавать веб-приложения быстро и легко. В Flask есть множество возможностей для организации кода, и одной из таких возможностей являются Blueprint.
Что такое Blueprint в Flask? Blueprint — это способ организации кода в Flask, который позволяет разделить приложение на несколько отдельных модулей. Каждый модуль содержит роуты, шаблоны, статические файлы и другую функциональность, что делает код более читаемым, управляемым и масштабируемым.
Где использовать Blueprint? Blueprint можно использовать в любом Flask-приложении, особенно если у вас есть несколько видов функциональности, которые нужно разбить на отдельные компоненты. Blueprint можно использовать для создания API-эндпоинтов, административной панели, аутентификации, контроллеров и других частей приложения.
Как использовать Blueprint? Для использования Blueprint в Flask, вам нужно сначала создать объект Blueprint, определив его название и URL-префикс. Затем вы можете добавить роуты, шаблоны, статические файлы и другую функциональность к объекту Blueprint. Наконец, вы должны зарегистрировать Blueprint в вашем приложении с помощью метода app.register_blueprint()
.
Пример использования Blueprint в Flask:
from flask import Blueprint, render_template
# Создаем объект Blueprint
my_blueprint = Blueprint('my_blueprint', __name__, url_prefix='/my_blueprint')
# Добавляем роут
@my_blueprint.route('/')
def index():
return render_template('index.html')
# Добавляем еще один роут
@my_blueprint.route('/about')
def about():
return render_template('about.html')
# Регистрируем Blueprint в приложении
app.register_blueprint(my_blueprint)
После этого вы сможете обращаться к вашему Blueprint по URL /my_blueprint
и получать доступ к роутам index
и about
.
В заключение, Blueprint в Flask — это мощный инструмент для организации кода в ваших веб-приложениях. Он помогает делить приложение на модули, что упрощает его разработку, поддержку и масштабирование. Используйте Blueprint, чтобы сделать ваш код более структурированным и удобочитаемым!
У меня происходил некорректный редирект на admin/.index и admin/.logout (оба через точку). Поменял в переменной menu 'url': './' и 'url': './logout' – заработало.
Не подключались стили помог данный код category_bp = Blueprint('category', __name__, template_folder='templates', static_folder='static',static_url_path='/static/category')
Большое спасибо за видео, все сразу стало понятно!))
Вы очень круто преподаете! Спасибо большое вам)
Просто фантастический урок!!!
Урок классный, но функция ifLogged – ***код. Не проще вызвать return bool(…)
Спасибо за видео, очень полезные уроки! Сразу родился вопрос: как можно реализовать контроль доступа к страницам созданным с использованием Blueprint? Например, в главном приложении у нас реализован механизм, декоратор наподобие login_required, в котором проверяется текущий пользователь со списком тех кому разрешен доступ к странице. Импортировать в blueprint из основного приложение мы его не можем, так как получим зацикливание импорта. Создавать такой-же для каждого blueprint не целесообразно. Как корректно разрешить такую задачу?
А почему иерархия выглядит так ./admin/templates/admin? Почему бы не ограничиться ./admin/templates?
Большое спасибо! На сайте ( proproprogs.ru ) в form перед label не стоит абзац <p>, и поэтому строки с логином и паролем идут впритык, не так красиво, как у вас в видео. Но это даже прикольно – мелочь, но можно самостоятельно подумать. А в коде на github (я с ним сверяюсь в конце, на всякий случай, если что-то исправляла – чтобы не наисправлять что попало) – там все нужные теги проставлены.
Что за мода такая стала в русском и украинском языках говорить "проЄкт"? Вроде как новые правила, но лично мне режет уши
Сергей, спасибо Вам за уроки, очень полезно. а будете ли затрагивать темы REST API? Сложная тема и так мало русскоязычной информации в подобном изложении как у Вас.
Твои уроки бесподомны, спасибо)
Здравствуйте, позволю заметить что в этом уроке Вы говорите о ссылке
<link type="text/css" href="{{url_for('.static',filename='css/style.css')}}" rel="stylesheet"/>
Где .static с точкой, однако визуально указываете не на текущий файл в текущей директории, а в директорию выше, что по определению значит static без точки вначале.
Где я заблуждаюсь?
Доброе время суток! А как обычно определяют. Кто может войти в админ панель а кто нет. Просто делать отдельную таблиц с пользователем одим с админскими правами. или эти права прописываются в основной теблице пользователей?
Спасибо! Вновь отличный урок!
Получается в session можно хранить два и более зарегистрированных пользователя от одного физического пользователя одновременно – юзера и админа?
Спасибо за подобный контент! Ваши уроки весьма информативны и доходчивы!
Качественные уроки. Спасибо.
спасибо за подробный урок!