Flask Blueprint: Что это и как его использовать?

Posted by


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, чтобы сделать ваш код более структурированным и удобочитаемым!

0 0 votes
Article Rating

Leave a Reply

19 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@codingoleg
20 days ago

У меня происходил некорректный редирект на admin/.index и admin/.logout (оба через точку). Поменял в переменной menu 'url': './' и 'url': './logout' – заработало.

@qwerty2609
20 days ago

Не подключались стили помог данный код category_bp = Blueprint('category', __name__, template_folder='templates', static_folder='static',static_url_path='/static/category')

@ДжанетРустамова
20 days ago

Большое спасибо за видео, все сразу стало понятно!))

@ivanstereotekkofficial5353
20 days ago

Вы очень круто преподаете! Спасибо большое вам)

@ЕрвандАгаджанян-в3к
20 days ago

Просто фантастический урок!!!

@yan200go
20 days ago

Урок классный, но функция ifLogged – ***код. Не проще вызвать return bool(…)

@vladimirsemenov942
20 days ago

Спасибо за видео, очень полезные уроки! Сразу родился вопрос: как можно реализовать контроль доступа к страницам созданным с использованием Blueprint? Например, в главном приложении у нас реализован механизм, декоратор наподобие login_required, в котором проверяется текущий пользователь со списком тех кому разрешен доступ к странице. Импортировать в blueprint из основного приложение мы его не можем, так как получим зацикливание импорта. Создавать такой-же для каждого blueprint не целесообразно. Как корректно разрешить такую задачу?

@sexscream
20 days ago

А почему иерархия выглядит так ./admin/templates/admin? Почему бы не ограничиться ./admin/templates?

@nadyamoscow2461
20 days ago

Большое спасибо! На сайте ( proproprogs.ru ) в form перед label не стоит абзац <p>, и поэтому строки с логином и паролем идут впритык, не так красиво, как у вас в видео. Но это даже прикольно – мелочь, но можно самостоятельно подумать. А в коде на github (я с ним сверяюсь в конце, на всякий случай, если что-то исправляла – чтобы не наисправлять что попало) – там все нужные теги проставлены.

@MasterSergius
20 days ago

Что за мода такая стала в русском и украинском языках говорить "проЄкт"? Вроде как новые правила, но лично мне режет уши

@samaukin1983
20 days ago

Сергей, спасибо Вам за уроки, очень полезно. а будете ли затрагивать темы REST API? Сложная тема и так мало русскоязычной информации в подобном изложении как у Вас.

@burtmacklin3605
20 days ago

Твои уроки бесподомны, спасибо)

@limirikys
20 days ago

Здравствуйте, позволю заметить что в этом уроке Вы говорите о ссылке
<link type="text/css" href="{{url_for('.static',filename='css/style.css')}}" rel="stylesheet"/>
Где .static с точкой, однако визуально указываете не на текущий файл в текущей директории, а в директорию выше, что по определению значит static без точки вначале.
Где я заблуждаюсь?

@donfedor007
20 days ago

Доброе время суток! А как обычно определяют. Кто может войти в админ панель а кто нет. Просто делать отдельную таблиц с пользователем одим с админскими правами. или эти права прописываются в основной теблице пользователей?

@artemkhmil
20 days ago

Спасибо! Вновь отличный урок!

@timon7996
20 days ago

Получается в session можно хранить два и более зарегистрированных пользователя от одного физического пользователя одновременно – юзера и админа?

@andreyzakharchenko4295
20 days ago

Спасибо за подобный контент! Ваши уроки весьма информативны и доходчивы!

@MrYuri63
20 days ago

Качественные уроки. Спасибо.

@rustamakhmullaev5697
20 days ago

спасибо за подробный урок!

19
0
Would love your thoughts, please comment.x
()
x