Что такое "Фляжки"?

Я прочитал официальную документацию Flask на чертежах и даже один или два сообщения в блоге об их использовании.

Я даже использовал их в своем веб-приложении, но я не совсем понимаю, что это такое или как они вписываются в мое приложение в целом. Как это похоже на экземпляр моего приложения, но не совсем? Документация является всеобъемлющей, но я ищу объяснение непрофессионала или просветительскую аналогию, чтобы искры для меня. Я был достаточно озадачен, когда коллега попросил меня объяснить им схему фляги, которую я решил задать здесь.

Ответ 1

Проект - это шаблон для создания "раздела" веб-приложения. Вы можете думать об этом как о плесени:

A medallion mold with a gold medallion freshly removed from it

Вы можете взять план и применить его к своему приложению в нескольких местах. Каждый раз, когда вы применяете его, план создает новую версию его структуры в гипсе вашего приложения.

# An example
from flask import Blueprint

tree_mold = Blueprint("mold", __name__)

@tree_mold.route("/leaves")
def leaves():
    return "This tree has leaves"

@tree_mold.route("/roots")
def roots():
    return "And roots as well"

@tree_mold.route("/rings")
@tree_mold.route("/rings/<int:year>")
def rings(year=None):
    return "Looking at the rings for {year}".format(year=year)

Это простая форма для работы с деревьями - в ней говорится, что любое приложение, работающее с деревьями, должно предоставлять доступ к его листьям, корням и кольцам (по годам). Сама по себе это пустая оболочка - она не может маршрутизировать, она не может отвечать, пока не произойдет впечатление на приложение:

from tree_workshop import tree_mold

app.register_blueprint(tree_mold, url_prefix="/oak")
app.register_blueprint(tree_mold, url_prefix="/fir")
app.register_blueprint(tree_mold, url_prefix="/ash")

Как только он создан, его можно "впечатать" в приложении с помощью функции register_blueprint - это "впечатляет" шаблон чертежа в приложении в местах, указанных в url_prefix.

Ответ 2

Как указано в комментарии @Devasish, эта статья дает хороший ответ:

http://exploreflask.com/en/latest/blueprints.html

Цитата из статьи:

Примером этого может быть Facebook. Если Facebook использует Flask, это может иметь чертежи для статических страниц (т.е. выписаться домой, зарегистрироваться, о и т.д.), панель инструментов (то есть лента новостей), профили (/robert/about and/robert/photos), настройки (/settings/security и /настройки/конфиденциальность) и многое другое. Все эти компоненты имеют общий макет и стили, но у каждого есть свой макет

Это очень хорошая интерпретация, особенно часть "если Facebook использовал Flask". Это дает нам конкретную ситуацию, чтобы визуализировать, как на самом деле работает Blueprint.